Hola Hellmuth... 2016-10-06 14:54 GMT+02:00 Hellmuth Vargas <hiv...@gmail.com>: > Hice el siguuiente ejercicio: > > select cast('1968-09-08 00:00:00+01' as timestamp) as fecha,cast('1900-01-01 > 10:00:00+00' as timestamp) as hora, cast('1968-09-08 00:00:00+01' as > timestamp)+cast(cast('1900-01-01 10:00:00+00' as timestamp) as time) as > fechahora
Y el resultado fue? porque no lo tengo muy claro. Con las zonas p*t**ndo de por medio puede que no obtengas el mismo resultado siempre ( aqui utilizas TEXTO, eso es facil, no TSw/TZ, que es lo que pedia el ejemplo original ). Mira lo que pasa en mi maquina si cambio las constantes de texto a timestamp with time zone, como en el ejemplo original: n=> select cast('1968-09-08 00:00:00+01' as timestamp) as fecha,cast('1900-01-01 10:00:00+00' as timestamp) as hora, cast('1968-09-08 00:00:00+01' as timestamp)+cast(cast('1900-01-01 10:00:00+00' as timestamp) as time) as fechahora ; fecha | hora | fechahora ---------------------+---------------------+--------------------- 1968-09-08 00:00:00 | 1900-01-01 10:00:00 | 1968-09-08 10:00:00 (1 row) n=> select cast('1968-09-08 00:00:00+01'::timestamp with time zone as timestamp) as fecha,cast('1900-01-01 10:00:00+00'::timestamp with time zone as timestamp) as hora, cast('1968-09-08 00:00:00+01'::timestamp with time zone as timestamp)+cast(cast('1900-01-01 10:00:00+00'::timestamp with time zone as timestamp) as time) as fechahora; fecha | hora | fechahora ---------------------+---------------------+--------------------- 1968-09-08 00:00:00 | 1900-01-01 09:45:16 | 1968-09-08 09:45:16 (1 row) Siempre hay conversion de tipos, no hay que olvidar nunca que un TSw/TZ internamente no es un bonito texto y NO TIENE LA ZONA HORARIA ALMACENADA ( lo que es evidente si se miran los requisitos de almacenamiento, que son los mismos para w/ que wo/ TZ ). Internamente equivalente a un numero real gordo, un punto en la recta del tiempo. La diferencia es que cuando lo imprimes si es w/TZ el sistema lo imprime en la TIME ZONE activa en ese momento, mientras que si es WO/TZ te imprime el equivalente a la zona UTC. Por eso cuando se quieren guardar 'horas locales', es decir, la hora como la veia el usuario, hay que guardar dos cosas, la zona del usuario y un timestamp ( este ultimo puede ser w/ o WO/, normalmente es mas facil wo/ pero ambos valen ). Francisco Olarte. - Enviado a la lista de correo pgsql-es-ayuda (pgsql-es-ayuda@postgresql.org) Para cambiar tu suscripci�n: http://www.postgresql.org/mailpref/pgsql-es-ayuda