Que bueno que Alex te dio la solucion, y solo con afan de aclarar:


Tengo entendido que un campo timestamp contiene la fecha, la hora y
segundos, por lo tanto se puede extraer cada una de las partes mencionadas
directamente del campo.

Ahora bien, lo que vos tenes es un campo que contiene los segundos  a partir
de una fecha.  Por eso funciona la palabra clave seconds.  Igualmente
pudiste tener los días a partir de cierta fecha, y entonces sumarias a la
fecha base con la palabra days.

Me llama la atención la fecha 1970, pues existe una API que convierte los
segundos a fecha timestamp, pero esta toma como base el 15 de Octubre de
1582.  Te adjunto definición de timestamp, y de la API que menciono, para
que verifiques si realmente es la fecha 1970.



Saludos.



A *timestamp* is a seven-part value (year, month, day, hour, minute, second,
and microsecond) that designates a date and time as defined previously,
except that the time includes a fractional specification of microseconds.





The Convert Seconds to Character Timestamp (CEEDATM) API formats a number
representing the number of seconds since 00:00:00 14 October 1582. The
output is a character string such as 1988/07/26 20:37:00.

*input_seconds (input)*

A 64-bit double floating-point number representing the number of seconds
since 00:00:00 on 14 October 1582. For example, 00:00:01 on 15 October 1582
is second number 86,401 (24*60*60 + 01). The valid range is 86 400 to
265 621 679 999.999 (23:59:59.999 31 December 9999).

El 15 de junio de 2010 06:28, Josep Sanchez <[email protected]>escribió:

>  Tu si que sabes Alex, esto es lo que buscaba, como no lo habia pensado
> ....
>
> Muchas gracias.
>
> J.Sánchez
>
>  ----- Original Message -----
> *From:* alex martinez <[email protected]>
> *To:* forum.help400 <[email protected]>
>   *Sent:* Tuesday, June 15, 2010 9:14 AM
> *Subject:* Re: En SQL convertir a fecha + hora un campo TIMESAMTP
>
> Hola Josep:
>
> Es mucho más sencillo !!!
>
> solo hay que sumar el número de segundos a la fecha 1-1-1970
>
> Más o menos algo así:
>
> select timestamp('1970-01-01-00.00.00') + 1276578852858 seconds  from
> qsys2/qsqptabl
>
>
> Salu2
>
> El 15 de junio de 2010 07:38, Josep Sanchez <[email protected]>escribió:
>
>>  Gracias Bernabé pero los timestamp no contienen en las primeras
>> posiciones el año y luego el mes etc.
>>
>> Los valores timestamp son el número de segundos (o microsegundos) que han
>> transcurrido desde una fecha base. Por ejemplo
>> desde 01/01/1970 a las 00:00 y en mi fichero para ese campo tengo valores
>> como estos:
>>
>> ..+....1....+....2....+
>>             Timestamp
>>     1.276.578.852.858
>>     1.276.543.463.928
>>     1.276.531.572.321
>>     1.276.526.471.606
>>     1.276.524.121.731
>>     1.276.523.784.384
>>     1.276.519.667.275
>>     1.276.519.630.634
>>     1.276.519.591.728
>>     1.276.519.556.806
>>     1.276.519.525.806
>>     1.276.519.298.401
>>
>>
>> Por lo que no tengo ni idea de como extraer la fecha de ese valor.  Parece
>> que son los mili-segundos desde 1/1/1970 pero
>> debe existir una funcion que lo convierta en fecha, porque de otra forma
>> es muy inexacto, (dividir por 40 años a 365,25 dias por año, y luego por 24
>> horas a 3600 segundos, mas los dias que llevamos de este año etc..... un
>> rollo vamos)
>>
>> Muchas gracias igualmente...
>>
>> Saludos
>>
>> J. Sanchez
>>
>>
>>  ----- Original Message -----
>> *From:* Bernabé Estrada <[email protected]>
>> *To:* 'forum.help400' <[email protected]>
>>   *Sent:* Tuesday, June 15, 2010 6:29 AM
>> *Subject:* RE: En SQL convertir a fecha + hora un campo TIMESAMTP
>>
>>  Entonces lo mas sencillo es hacer armar un campo con el formato de fecha
>> (yyyy-mm-dd por ejemplo) concatenando los substring de cada parte del
>> campo.  Mas o menos asi:  SELECT date( substr(digits(myfld),1,4) || '-' ||
>> substr(digits(myfld),5,2) || '-' || substr(digits(myfld),7,2)) FROM
>> myarchivo (Claro, dependiendo de en que posiciones de tu campo estén el año,
>> mes y dia)
>>
>>
>>
>>  Saludos.
>>
>> *From:* [email protected] [mailto:
>> [email protected]] *On Behalf Of *Josep Sanchez
>> *Sent:* Lunes, 14 de Junio de 2010 09:33 a.m.
>> *To:* forum.help400
>> *Subject:* Re: En SQL convertir a fecha + hora un campo TIMESAMTP
>>
>>
>>
>> Hola que tal,
>>
>>
>>
>> year(myfield) me da argumento 1 no valido.  Lo mismo que si hago
>> year(myfield*100000000)
>>
>>
>>
>> El campo en el fichero es un numerico de 18,0 pero la cifra grabada son
>> las 18 primeras posiciones de un
>>
>> Timestamp en tiempo de ejecución.
>>
>>
>>
>> Supongo que para la base datos es un númerico y basta pero yo necesito
>> saber que fecha se esconde en esa cifra.
>>
>>
>>
>> Gracias por tu ayuda.
>>
>>  ----- Original Message -----
>>
>> *From:* Bernabe Estrada <[email protected]>
>>
>> *To:* 'forum.help400' <[email protected]>
>>
>> *Sent:* Monday, June 14, 2010 4:12 PM
>>
>> *Subject:* RE: En SQL convertir a fecha + hora un campo TIMESAMTP
>>
>>
>>
>> No me suena un timestamp de 18, pero proba extraer el month, year y day
>> para ver si realmente lo reconoce como fecha.
>>
>>
>>
>> Select year(myfield), month(myfield), day(myfield) …..
>>
>>
>>
>> Saludos.
>>
>>
>>
>>
>>
>> *From:* [email protected] [mailto:
>> [email protected]] *On Behalf Of *Josep Sanchez
>> *Sent:* Lunes, 14 de Junio de 2010 04:13 a.m.
>> *To:* forum.help400
>> *Subject:* En SQL convertir a fecha + hora un campo TIMESAMTP
>>
>>
>>
>> Hola a todos,
>>
>>
>>
>> En un fichero tengo un campo de 18,0 empaquetado en el que se guarda un
>> valor timestamp,
>>
>> (debe ser truncado porque creo recordar que los campos Timestamp reales
>> ocupaban 26 digitos)
>>
>>
>>
>> El caso es que intento convetirlo en una fecha normal y no funciona
>>
>>
>>
>> He probado:
>>
>>
>>
>> select date(myfield), a.* from myfile a where myfield<>0
>>
>>
>>
>> y tambien
>>
>>
>>
>> select date(myfield*100000000), a.* from myfile a where myfield<>0
>>
>>
>>
>> en ambos casos me devuelve asteriscos...
>>
>>
>>
>> Alguien sabe como ver este dato convertido en fecha ??
>>
>>
>>
>> Gracias de antemano.
>>
>>
>>
>> J.Sanchez
>>  ------------------------------
>>
>> ____________________________________________________
>> Únete a Recursos AS400, nuestra Comunidad ( http://bit.ly/db68dd )
>> Forum.Help400 © Publicaciones Help400, S.L.
>>
>>  ------------------------------
>>
>> ____________________________________________________
>> Únete a Recursos AS400, nuestra Comunidad ( http://bit.ly/db68dd )
>> Forum.Help400 © Publicaciones Help400, S.L.
>>
>>
>> ____________________________________________________
>> Únete a Recursos AS400, nuestra Comunidad ( http://bit.ly/db68dd )
>> Forum.Help400 © Publicaciones Help400, S.L.
>>
>
>  ------------------------------
>
> ____________________________________________________
> Únete a Recursos AS400, nuestra Comunidad ( http://bit.ly/db68dd )
> Forum.Help400 © Publicaciones Help400, S.L.
>
>
> ____________________________________________________
> Únete a Recursos AS400, nuestra Comunidad ( http://bit.ly/db68dd )
> Forum.Help400 © Publicaciones Help400, S.L.
>
____________________________________________________
Únete a Recursos AS400, nuestra Comunidad ( http://bit.ly/db68dd )
Forum.Help400 © Publicaciones Help400, S.L.

Responder a