Banda Ancha EU

Comunidad de usuarios
de fibra, móvil y ADSL

Convertir Timestamp -> dd/mm/aaaa

Hispace

Hola compañeros/as,

A ver si algún experto en programación o BBDD puede echarme una mano, se lo agradezco.

Estoy importando una tabla de Acces, con unos 2000 registros, en la cual las fechas están en formato Timestamp (número entero) y tengo importar dicha tabla a una actual en la cual el formato de fecha sea el de "fecha corta (dd/mm/aaaa)". :-?

Alguien sabe alguna forma eficaz para realizar automatizar el cambio? Alguna idea para realizar un script que me automatizara el proceso? :-?

Saludos y muchas gracias,

Este tema está cerrado a nuevas respuestas. Abre un nuevo tema para retomar la conversación.
Worked

a que lenguaje y como la importas... o si te quedas dentro del propio Access.

BocaDePez
BocaDePez

Tienes que ver los datos y decidir a partir de que año son del 1900 y de que otro son del 2000.

Si hay fechas que pueden ser de 1905 y 2005 porque el negocio esta funcionando en ambos años entonces se complica el asunto y necesitaras otros factores para adjudicar el año XX a una centuria u otra.

Cuando me toca hacer una migracion de datos de un sistema HOST a ORACLE se suele presentar ese problema y alguien de la empresa que conoce la logica de negocio y los datos en profundidad escoge una fecha de corte para establecer los intervalos y yo la acato.

Asi si el año X>= 25 estamos en 19XX y si es menor
Luego te tocara a ti programarlo en el lenguaje que sea.

Meterlo todo en una sentencia INSERT es posible pero complejo, dificil de leer y tendende a errores, pero a veces es util.

🗨️ 1
BocaDePez
BocaDePez

Joder con los menos... se tragan parte de la linea.

Si suponemos el caso base con fecha del año donde se reparte es 25 y fecha la variable donde esta la fecha que analizas con 2 digitos como año te quedaria en ORACLE algo asi... que podras transcribir a algo parecido en script

IF to_number(to_char(fecha_I,'YY)) MAYOR que 25

to_date (to_char('DD', fecha)||'/'||to_char('MM', fecha)||'/19'||to_char('YY', fecha), 'DD/MM/YYYY')

ELSE

to_date (to_char('DD', fecha)||'/'||to_char('MM', fecha)||'/20'||to_char('YY', fecha), 'DD/MM/YYYY')

END IF

Jugando con DECODES podrias meter algo parecido en un INSERT.... pero temas de access no manejo y cada BBDD tiene sus peculiaridades con el SQL y no todo es aplicable.