Usuário com melhor resposta
valor vazio é considerado como verdadeiro

Pergunta
-
Respostas
-
Rafa, na verdade, como a variavel não tem valor a validação que esta sendo feita não é do valor da variavel mas sim do tipo de dados dela, por exemplo, mude o tipo de dados na declaração da variavel de data para int e float para char e voce verá que o resultado será 0:
declare @valor int set @valor = '' select ISDATE(@valor) declare @valor varchar(10) set @valor = '' select ISNUMERIC(@valor)
Alexandre Matayosi Conde Mauricio. Se esta sugestão for útil, por favor, classifique-a como útil. Se ela lhe ajudar a resolver o problema, por favor, marque-a como Resposta.
- Sugerido como Resposta Alexandre Matayosi quinta-feira, 11 de outubro de 2012 19:23
- Marcado como Resposta rafa-martin quinta-feira, 11 de outubro de 2012 19:30
-
Rafa isto acontece porque quando atribuímos aspas simples em alguns tipos do SQL, o mesmo interpreta que este valor é o default do tipo (float = 0, datetime = 1900-01-01 00:00:00.000 e etc...). Faça o teste você mesmo:
DECLARE @valorDatetime DATETIME SET @valorDatetime = '' SELECT ISDATE(@valorDatetime) SELECT @valorDatetime SET @valorDatetime = NULL SELECT ISDATE(@valorDatetime) SELECT @valorDatetime ------FLOAT DECLARE @valorFloat FLOAT SET @valorFloat = '' SELECT ISNUMERIC(@valorFloat) SELECT @valorFloat SET @valorFloat = NULL SELECT ISNUMERIC(@valorFloat) SELECT @valorFloat
Vitor Mendes | Seu feedback é muito importante para todos!
Visite o meu site: http://www.vitormendes.com.br/- Marcado como Resposta Roberson Ferreira _Moderator sexta-feira, 12 de outubro de 2012 11:35
Todas as Respostas
-
Rafa, na verdade, como a variavel não tem valor a validação que esta sendo feita não é do valor da variavel mas sim do tipo de dados dela, por exemplo, mude o tipo de dados na declaração da variavel de data para int e float para char e voce verá que o resultado será 0:
declare @valor int set @valor = '' select ISDATE(@valor) declare @valor varchar(10) set @valor = '' select ISNUMERIC(@valor)
Alexandre Matayosi Conde Mauricio. Se esta sugestão for útil, por favor, classifique-a como útil. Se ela lhe ajudar a resolver o problema, por favor, marque-a como Resposta.
- Sugerido como Resposta Alexandre Matayosi quinta-feira, 11 de outubro de 2012 19:23
- Marcado como Resposta rafa-martin quinta-feira, 11 de outubro de 2012 19:30
-
Rafa isto acontece porque quando atribuímos aspas simples em alguns tipos do SQL, o mesmo interpreta que este valor é o default do tipo (float = 0, datetime = 1900-01-01 00:00:00.000 e etc...). Faça o teste você mesmo:
DECLARE @valorDatetime DATETIME SET @valorDatetime = '' SELECT ISDATE(@valorDatetime) SELECT @valorDatetime SET @valorDatetime = NULL SELECT ISDATE(@valorDatetime) SELECT @valorDatetime ------FLOAT DECLARE @valorFloat FLOAT SET @valorFloat = '' SELECT ISNUMERIC(@valorFloat) SELECT @valorFloat SET @valorFloat = NULL SELECT ISNUMERIC(@valorFloat) SELECT @valorFloat
Vitor Mendes | Seu feedback é muito importante para todos!
Visite o meu site: http://www.vitormendes.com.br/- Marcado como Resposta Roberson Ferreira _Moderator sexta-feira, 12 de outubro de 2012 11:35