Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

paulexpert

Problemas com data em formato americano

Recommended Posts

Pessoal, bom diaEstou com problemas em um banco de dados SQL Server 2000 SP4 referente ao formato em que a data se apresenta para mim.Tenho uma tabela que contêm uma coluna no formato datetime; ao entrar pelo EM e pedir "return all rows" a data é apresentada no formato dd/mm/yyyy, porém ao realizar um select na coluna data desta tabela via Query Analyzer a data é apresentada no formato yyyy/mm/dd.Não entendo porque esses 02 tipos de visão da mesma coluna são apresentados assim. Isso não seria um problema se a aplicação que utiliza esse banco não estivesse sendo afetada por causa disso.Detalhes:* collation do banco está default : latin1_CI_AS* servidor Windows Server 2003* servidor está com regional settings Portugues(Brasil) e formato de data dd/mm/yyyy* select getdate() retorna data no formato yyyy/mm/ddHá alguma configuração no banco que deva ser a responsável por isso?Paulo Cesar Camargopaulof_inovar@ctbc.com.br

Compartilhar este post


Link para o post
Compartilhar em outros sites

Baseado nas dicas que me ofereceram e em outros posts encontrados na NET, minha instrução select executa normalmente agora no Query Analyzer ao acrescentar a opção 'SET DATEFORMAT dmy', porém minha aplicação continua com o mesmo problema.

 

Erro apresentado:

[Microsoft][ODBC SQL Server Driver][SQL Server]The conversion of a char data type to a datetime data type resulted in an out-of-range datetime value.

Deve ter alguma configuração a fazer no SQL Server para que este interprete as colunas datetime no formato brasileiro 'dd/mm/yyyy' , mas onde é? :mellow:

Compartilhar este post


Link para o post
Compartilhar em outros sites

Erro apresentado:

[Microsoft][ODBC SQL Server Driver][SQL Server]The conversion of a char data type to a datetime data type resulted in an out-of-range datetime value.
verificou esse post: http://forum.imasters.com.br/index.php?showtopic=223962?qual comando você ta executando pra ocorrer esse erro?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Erro apresentado:

[Microsoft][ODBC SQL Server Driver][SQL Server]The conversion of a char data type to a datetime data type resulted in an out-of-range datetime value.
verificou esse post: http://forum.imasters.com.br/index.php?showtopic=223962?qual comando você ta executando pra ocorrer esse erro?
Eriva_BR, Eu já havia lido esse post acima onde você colaborou na tratativa de um problema de data da Andreia_SP. Esse post me deu a luz do SET DATEFORMAT dmy; mas essa opção é somente se eu fosse executar na mão a minha instrução SELECT. Esta intrução recebe um parâmetro de data '23/05/2007' e traz os resultados. Se eu rodar a instrução no Query Analyzer vai tudo bem, porém no código ASP do site dá problema. O detalhe é que este código é utilizado em outro site e funciona muito bem lá.A única diferença que tenho entre as máquinas e os bancos de dados é que a nova máquina está com o SQL Server 2000 com o service pack 4. Será que tem alguma coisa haver?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Camarada,

 

Com o eriva solicitou post o seu SQL ai.

 

Fica mais fácil.

 

Agora vcc pode passar asim:

sSql = " SET DATEFORMAT dmy   SELECT * FROM TABELA WHERE CAMPO_DATA = " & vardata
Se compreendi bem seu questionamento.

 

 

Bom segue um exemplo usando o CONVERT, talvez ajude:

DECLARE @TMP TABLE(NASCIMENTO DATETIME)INSERT INTO @TMP(NASCIMENTO) VALUES ('2007/01/27')INSERT INTO @TMP(NASCIMENTO) VALUES ('2007/01/05')SELECT * FROM @TMPWHERE convert(varchar(12),NASCIMENTO,111) = '2007/01/05'

Qq coisa estamos ai!

 

t+

Compartilhar este post


Link para o post
Compartilhar em outros sites

Pessoal, boa noite

 

Achei a causa do problema. Muito hilário o que houve. Eis a solução do meu problema:

 

1 - Alterei a default language do usuário para Brazilian;

2 - Alterei a default language da DSN para Brazilian.

 

Bom, agora os esclarecimentos. Eu não sabia que a aplicação se conectava via ODBC; então, após verificar a DSN criada, alterei a default language da System DSN criada no ODBC para Brazilian. Testei e continuou com erro. Peguei o usuário utilizado na DSN e fui no banco verificar seus parametros; lá eu alterei a default language dele para Brazilian. Teste e sucesso!!!

 

Pensei que o grande mistério fosse somente a questão da default language do usuário de login, então voltei no DSN e troquei para English novamente. Testei e falhou. Coloquei a language em Brazilian novamente e tudo voltou a funcionar.

 

Não entendi direito a razão dessa solução ter dado certo mas agora tá funcionando. O interessante é que antes funcionava tudo bem e parou de funcionar de uma hora para outra. Mas como esse ambiente é de cliente nosso, então achar quem mudou ou se funcionava assim mesmo é dificil.

 

Alguém aí pode me explicar por que isso deu certo?

 

Obrigado galera !!!

 

http://forum.imasters.com.br/public/style_emoticons/default/joia.gif

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.