Fórum Validação de Data em Update #461038

13/11/2013

0

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.....
Wellington Jr.

Wellington Jr.

Responder

Posts

19/11/2013

Dirceu Morais

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.....


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?

Responder

Gostei + 0

26/11/2013

Ricardo Araujo

conseguiu resolver ?
Responder

Gostei + 0

09/12/2013

Celso Medeiros

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

Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar