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.

