Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Pessoal, seguinte. Em uma das tabelas do meu Banco de dados, um dos campos está no formato DateTime. Bom, o SQL em questão está na Locaweb, que por sua vez coloca como Collation padrão SQL_Latin1_General_CP850_CI_AI
.
Até ai td bem. Ou melhor, nada bem! Imaginemos que nesse campo datetime, um dos registros está com a seguinte data: 9/4/2007. Pois bem, quando eu visualizo esse registro no Query Analyser, essa data me aparece assim: 2007-09-04. Quando visualizo no Enterprise Manager ela me aparece assim: 04/09/2007.
Bom, aí vem um outro detalhe. No mesmo Enterprise Manager, se eu mudar o dia em questão, de 9 para 19, automaticamente a data passa a ser exibida no seguinte formato: 19/4/2007. Agora a pergunta:
Se o dia é igual o maior a 10, a data mostrada fica no formato dd/mm/aaaa. Se o dia é menor, a data é exibida no formato mm/dd/aaaa. Pq isso?
Outra coisa, voltemos a pensar na data armazenada como 4/9/2007 ou seja, mm/dd/aaaa. Se eu faço um select com uma data vindo de um objeto Calendar no formato mm/dd/aaaa, o SQL não me retorna nada. Porém, se eu faço o mesmo select, só que no formato dd/mm/aaaa, ele retorna o registro em questão!
Minha cabeça deu nó! Pq na prática vi que quando tenho no banco uma data como 4/9/2007, minha consulta só retorna o registro se eu fizer o select com a data no formato 9/4/2007. Porém, se a data do banco estiver como 19/4/2007, e tentar fazer uma consulta no formato 19/4/2007, o SQL simplesmente dá erro! Mas se eu volto a colocar no formato 4/19/2007 aí funciona!
Ou seja, a impressão que tive é que o mesmo campo DateTime, é visto de maneira diferente quando o dia, ou o mes da data inserira é menor que 10!? Vcs conseguiram me entender? Nâo sei se expliquei direito. Mas não sei como posso resolver isso!
Sinceridade, eu to mais perdido que cabelo em cabeça de careca com esse problema e espero que alguém possa me ajudar. Vlw
Carregando comentários...