Validação de Data em Update
Boa noite, possuo um banco de dados em Firebird 2,5 e utilizo o IBexpert e possuo tres colunas de uma tabela em que a data esta em formato VARCHAR e preciso passar para formato DATE, utilizei o comando abaixo:
update SPC set CON_DATANASCIMENTO = cast(MESNASC || '/' || DIANASC || '/' || ANONASC as date)
o comando funcionou corretamente até encontrar uma data inválida e gostaria que somente as datas válidas fossem repassadas para a coluna CON_DATANASCIMENTO, alguem saberia como fazer.....
update SPC set CON_DATANASCIMENTO = cast(MESNASC || '/' || DIANASC || '/' || ANONASC as date)
o comando funcionou corretamente até encontrar uma data inválida e gostaria que somente as datas válidas fossem repassadas para a coluna CON_DATANASCIMENTO, alguem saberia como fazer.....
Wellington Jr.
Curtidas 0
Respostas
Dirceu Morais
13/11/2013
Boa noite, possuo um banco de dados em Firebird 2,5 e utilizo o IBexpert e possuo tres colunas de uma tabela em que a data esta em formato VARCHAR e preciso passar para formato DATE, utilizei o comando abaixo:
update SPC set CON_DATANASCIMENTO = cast(MESNASC || '/' || DIANASC || '/' || ANONASC as date)
o comando funcionou corretamente até encontrar uma data inválida e gostaria que somente as datas válidas fossem repassadas para a coluna CON_DATANASCIMENTO, alguem saberia como fazer.....
update SPC set CON_DATANASCIMENTO = cast(MESNASC || '/' || DIANASC || '/' || ANONASC as date)
o comando funcionou corretamente até encontrar uma data inválida e gostaria que somente as datas válidas fossem repassadas para a coluna CON_DATANASCIMENTO, alguem saberia como fazer.....
Boa tarde,
Se vc tentar usar assim:
update SPC set CON_DATANASCIMENTO = cast(MESNASC || '/' || DIANASC || '/' || ANONASC as date) where (mesnasc <> '') and (DiaNasc <> '') and (AnoNasc <> '')
Será que naum dá certo?
GOSTEI 0
Ricardo Araujo
13/11/2013
conseguiu resolver ?
GOSTEI 0
Celso Medeiros
13/11/2013
Wellington Jr.
Já tentou usando case?
Assim, quando tiver data fora do intervalo ele gravará NULL.
update SPC set CON_DATANASCIMENTO =
case when cast(MESNASC || '/' || DIANASC || '/' || ANONASC as date) BETWEEN '01.01.1900' and '31.12.2500'
then cast(MESNASC || '/' || DIANASC || '/' || ANONASC as date)
else NULL
end
Espero que ajude.
Abraços,
Celso Medeiros
Já tentou usando case?
Assim, quando tiver data fora do intervalo ele gravará NULL.
update SPC set CON_DATANASCIMENTO =
case when cast(MESNASC || '/' || DIANASC || '/' || ANONASC as date) BETWEEN '01.01.1900' and '31.12.2500'
then cast(MESNASC || '/' || DIANASC || '/' || ANONASC as date)
else NULL
end
Espero que ajude.
Abraços,
Celso Medeiros
GOSTEI 0