none
Erro ao pesquisar por Data do Tipo DateTime RRS feed

  • 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.

    quarta-feira, 18 de janeiro de 2012 15:37

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
    quarta-feira, 18 de janeiro de 2012 15:44
  • 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
    quarta-feira, 18 de janeiro de 2012 15:39

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
    quarta-feira, 18 de janeiro de 2012 15:39
  • 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
    quarta-feira, 18 de janeiro de 2012 15:44
  • actualizei a questão...pode fazer mais sentido agora...voltem a ler.
    quarta-feira, 18 de janeiro de 2012 16:40
  • TheAkaBroken

    vc testou o modo que o Gustavo comentou?

    Select datar From encomenda Where datar = '20090213 00:00:00.000'
    

     


    Att.
    Marcelo Fernandes

    MCP, MCDBA, MCSA, MCTS.
    Se útil, classifique!!!
    Me siga no twitter: @marcelodba

    quarta-feira, 18 de janeiro de 2012 17:16
    Moderador
  • 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.

     

     

    quarta-feira, 18 de janeiro de 2012 17:35