Magi Franquesa escribió: > Hola, > > Tengo una bd con registros de incendios en los que se indica la fecha y > hora de inicio en un campo de tipo "timestamp with time zone", pero el > problema es que en lugar de un solo campo con ambos datos hay dos campos: > uno que contiene la fecha correcta y el segundo la hora. Necesito crear un > nuevo campo del mismo tipo con la fecha y hora como muestro en el ejemplo > siguiente: > > Campo 1 (fecha inicio):"*1968-09-08* 00:00:00+01" > Campo 2 (hora inicio): "1900-01-01 *10:00:00+00*" > Resultado buscado: "*1968-09-08 10:00:00+00*"
Haz un cast de cada uno al tipo correcto, y luego los juntas sumándolos: alvherre=# create table magi (fecha timestamptz, hora timestamptz); CREATE TABLE alvherre=# insert into magi values ('1968-09-08 00:00:00+01', '1900-01-01 10:00:00+00' at time zone 'UTC'); INSERT 0 1 alvherre=# select fecha, hora from magi; fecha │ hora ────────────────────────┼────────────────────────────── 1968-09-07 19:00:00-04 │ 1900-01-01 10:00:00-04:42:46 (1 fila) alvherre=# select fecha::date, hora::time, fecha::date + hora::time from magi; fecha │ hora │ ?column? ────────────┼──────────┼───────────────────── 1968-09-07 │ 10:00:00 │ 1968-09-07 10:00:00 (1 fila) Observa que los valores de los husos horarios son "divertidos". Querrás ajustar eso, quizás. Puedes usar el operador AT TIME ZONE; mira el manual y experimenta un poco a ver si encuentras algo que tenga sentido. Considera que el tipo "time" no lleva huso horario, en cambio "time with time zone" sí lo lleva. Igualmente, el tipo "timestamp" no lleva huso horario, y "timestamp with time zone" sí lo lleva. Considera también que un dato con huso horario significa "un dato que está almacenado en UTC y que se convierte al huso horario configurado en el parámetro TimeZone al momento de mostrarlo". Al momento de guardar, el dato se transforma desde el parámetro TimeZone a UTC. Si no tienes este efecto en cuenta, puede ser un poco confuso. -- Álvaro Herrera https://www.2ndQuadrant.com/ PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services - 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