que - timestamp without timezone postgresql
Convertir una zona horaria UTC en postgresql a EST(hora local) (3)
Aquí en Londres, actualmente estamos 1 hora por delante de UTC. Entonces, si tomo su zona horaria sin marca de tiempo y digo que está en UTC, la imprimiré para mi zona horaria local.
richardh=> SELECT ((timestamp ''2015-10-24 16:38:46'') AT TIME ZONE ''UTC'');
timezone
------------------------
2015-10-24 17:38:46+01
(1 row)
Pero usted quiere "EST", que parece estar en algún lugar de las Américas, a juzgar por el valor devuelto. Puedes envolver la expresión en una pequeña función SQL si quieres.
richardh=> SELECT ((timestamp ''2015-10-24 16:38:46'') AT TIME ZONE ''UTC'') AT TIME ZONE ''EST'';
timezone
---------------------
2015-10-24 11:38:46
(1 row)
Edición: cómo hacerlo en una consulta.
SELECT ((stored_timestamp AT TIME ZONE ''UTC'') AT TIME ZONE ''EST'') AS local_timestamp
FROM my_table;
Es probable que desee obtener un libro introductorio sobre SQL si este tipo de cosas le está causando problemas.
Soy nuevo en PostgreSQL y me preguntaba si hay una forma directa de convertir los valores de la marca de hora en una tabla a una zona horaria diferente usando una función. En mi caso es UTC a EST.
Estos son los valores, por ejemplo, que necesito convertir a EST (no solo un valor sino todos los valores de la tabla)
date
-------------------
2015-10-24 16:38:46
2016-01-19 18:27:00
2016-01-24 16:14:34
2016-02-09 23:05:49
2016-02-11 20:46:26
Del mismo modo ejecutar
SELECT ''2015-10-24 16:38:46''::timestamp AT time zone ''EST'';
timezone
------------------------
2015-10-24 21:38:46+00
(1 row)
Siempre debe almacenar la referencia principal de una fecha en UTC y convertirla en una zona horaria en sus consultas o almacenar la versión de zona horaria específica de los datos en otra columna. La razón de esto es que es rápido y fácil convertir una fecha de UTC a otra zona horaria siempre que sepa que la zona horaria en la que está almacenada es UTC. Se toma el trabajo de adivinar de ella. Alternativamente, puede almacenar la fecha CON la zona horaria.
Si tiene una operación que rellena automáticamente la fecha con el reloj del sistema de su servidor, entonces puede A: Cambiar la operación para usar la hora UTC B: Cambiar el reloj del sistema en el servidor a UTC