Campo data no firebird

08/03/2010

11

Bom dia, antes de abrir este chamado eu procurei mas não encontrei nada sobre isso.   Estou desenvolvendo um sistema com FB 2.1, Delphi 7 e rodando no Windows 7, ocorre que tenho um cadastro de pessoas que estou tendo problemas com o campo da data de nascimento, se eu colocar "11/05/72" grava tudo beleza, mas se mais tarde eu voltar neste cadastro e for alterar, aparece "05/11/72" , no painel de controle do win 7 o formato está para dd/MM/aa.. outra coisa.. uma data de "02/03/53"  , se eu olhar pelo IBexpert está gravada como se fosse 2053 ao invés de 1953... certamente são casos bastante conhecidos para quem já trabalha com Firebird há mais tempo, mas para mim se torna uma pedra no meio do caminho. Conto com a ajuda de vcs.      
Responder

Posts

Bem.. não sei se é uma solução paliativa ou é a única solução.. fiz uma função que trata a data antes de gravar no bd... invertendo o dia/mes.. tá funcionando pelo menos. A função recebe "31/12/72" e grava no BD "12/31/72" Quanto o ano ficar 2053 ao invés de 1953 ainda não tenho a solução, se alguém tiver posta aí.   Obrigado 
Responder
como vc grava a data no registro? (os procedimentos que você usa para gravar)

quanto ao século da data, tem a ver com as configurações do Windows. geralmente você precisa informar a janela utilizada.
a 'janela' informada na minha máquina vai de 1930 a 2029 (XP, Painel de Controle -> Data, hora, idioma e opções regionais -> Opções regionais e de idioma -> Opções regionais -> Personalizar -> Data).
isso quer dizer que se eu informar:
- 30/06/28: o sistema irá interpretar como sendo 30/06/2028.
- 10/08/31: o sistema irá interpretar como sendo 10/08/1931.


Responder
a minha máquina tbem está entre 1930 e 2029... porém se gravo '10/05/53' vou no ibexpert conferir e o ano está como 2053... sei como funciona.. no bom e velho clipper a gente usava o "set epoch = 1930" daí todas as dadas que o ano fosse menor que 30, considerava acima do ano 2000.   Tente fazer um teste aí no seu bd.. com a data 25/12/53..   Acabei de fazer um teste aqui.. se eu colocar a data DIRETO PELO ibexpert também fica 2053.. ou seja, talvez seja um problema de interpretação ou configuração do Ibexpert  
Responder

09/03/2010

Alison Bissoli

infelizmente amigo, gravar datas no formato dd/mm/aa é considerado hoje em dia um dos piores erros conhecidos que são cometidos, culminou com o bug do milênio e não é nada legal trabalhar dessa forma, tente gravar no formato dd/mm/aaaa que com certeza não terá futuras (ou imediatas) dores de cabeça.
Responder

09/03/2010

Thiago Santana

Fiz o teste aqui! O melhor jeito de resolver isso é fazer o que o Álisson citou cadastrar a data no formato dd/mm/aaaa
Pq informando apenas 2 dígitos para ano o próprio sistema não irá saber diferenciar em que ano está....
Espero ter ajudado!
AbraçoO 
Responder
Obrigado a todos. Vou fazer o que o Alisson disse, vou mudar tudo para 4 dígitos. Valeu.
Responder
×
+1 DevUP
Acesso diário, +1 DevUP
Parabéns, você está investindo na sua carreira