Fórum Campo data no firebird #19197
08/03/2010
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.
Posts
08/03/2010
Maivo Halberstadt
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
08/03/2010
Emerson Nascimento
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.
08/03/2010
Maivo Halberstadt
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
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.
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
09/03/2010
Maivo Halberstadt
Obrigado a todos.
Vou fazer o que o Alisson disse, vou mudar tudo para 4 dígitos.
Valeu.