Usuário com melhor resposta
Erro ao pesquisar por Data do Tipo DateTime

Pergunta
-
Boa tarde, Tenho uma tabela com um campo que guarda a data de registo. No entanto, quando faço uma query a pesquisar por exemplo: Select datar From encomenda Where datar = '2009-02-13 00:00:00.000' devolve me o erro:
Msg 242, Level 16, State 3, Line 2
The conversion of a char data type to a datetime data type resulted in an out-of-range datetime value.
Isto é estranho porque se fizer: Select datar from encomenda Where datar = '2009-02-10 00:00:00.000' ja me devolve todos os registos...Alguem sabe porque isto acontece??Bem não faço a minima ideia porque isto acontece, mas na verdade acontece mesmo e sei que é estranho porque o tipo de dados é o mesmo, mas o que acontece é que os dados, perto dessa data, nesse ano, foram integrados num novos sistema, e a partir dai começou-se a trabalhar com o novo.Mas os tipo de dados neste novo sistema são os mesmos, são datatime, quer um, quer outro. deveria funcionar.- Editado sql-enthusiast quarta-feira, 18 de janeiro de 2012 16:39
Respostas
-
O erro é pq neste formato que vc está utilizando(YYYY-MM-DD), ele está interpretando como YYYY-DD-MM, e como não existe o mês 13 ele está dando o erro, mas quando passa com o final 10 ele aceita, mas entende como 02 de Outubro.
Vc pode verificar o Idioma utilizado com o comando: Select @@language
Solução: Ou vc muda o idioma do usuário ou muda o formato como passa as datas.
Abraços
Ozimar
- Editado Ozimar Henrique quarta-feira, 18 de janeiro de 2012 15:58
- Sugerido como Resposta Ozimar Henrique quarta-feira, 18 de janeiro de 2012 15:58
- Marcado como Resposta Heloisa Pires quinta-feira, 12 de abril de 2012 18:42
-
Boa Tarde,
Duas recomendações:
- Retire os hífens e uso o formato YYYYMMDD ao invés de YYYY-MM-DD
- Troca a primeira aspas duplas por apóstrofo[ ]s,
Gustavo Maia Aguiar
Blog: http://gustavomaiaaguiar.wordpress.com
Vídeos: http://www.youtube.com/user/gmasql
Classifique as respostas. O seu feedback é imprescindível- Sugerido como Resposta Gustavo Maia Aguiar quarta-feira, 18 de janeiro de 2012 15:39
- Marcado como Resposta Heloisa Pires quinta-feira, 12 de abril de 2012 18:42
Todas as Respostas
-
Boa Tarde,
Duas recomendações:
- Retire os hífens e uso o formato YYYYMMDD ao invés de YYYY-MM-DD
- Troca a primeira aspas duplas por apóstrofo[ ]s,
Gustavo Maia Aguiar
Blog: http://gustavomaiaaguiar.wordpress.com
Vídeos: http://www.youtube.com/user/gmasql
Classifique as respostas. O seu feedback é imprescindível- Sugerido como Resposta Gustavo Maia Aguiar quarta-feira, 18 de janeiro de 2012 15:39
- Marcado como Resposta Heloisa Pires quinta-feira, 12 de abril de 2012 18:42
-
O erro é pq neste formato que vc está utilizando(YYYY-MM-DD), ele está interpretando como YYYY-DD-MM, e como não existe o mês 13 ele está dando o erro, mas quando passa com o final 10 ele aceita, mas entende como 02 de Outubro.
Vc pode verificar o Idioma utilizado com o comando: Select @@language
Solução: Ou vc muda o idioma do usuário ou muda o formato como passa as datas.
Abraços
Ozimar
- Editado Ozimar Henrique quarta-feira, 18 de janeiro de 2012 15:58
- Sugerido como Resposta Ozimar Henrique quarta-feira, 18 de janeiro de 2012 15:58
- Marcado como Resposta Heloisa Pires quinta-feira, 12 de abril de 2012 18:42
-
-
-
Mas isso pode acontecer? então a data aparece representada de uma forma, e so dá para pesquisar ou comparar de uma outra forma!!! issonao faz sentido, mas de facto é o que está acontecer. Nao percebo muito bem porque isto esta acontecer.
Basicamente estou lixado, pois eu quero comparar essa data com uma tabela que eu criei, onde vai constar uma datae um ID, neste caso uma dimensão tempo para BI, mas na hora de comparar nao vai dar certo.