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 
  To: forum.help400 
  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 
      To: 'forum.help400' 
      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 

        To: 'forum.help400' 

        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.

Responder a