en PostgreSQL 2 los tipos de datos temporales, a saber, timestamp
y timestamptz
donde uno está sin zona horaria y el último está con zona horaria respectivamente, son compatibles para almacenar la hora y la fecha en una columna. Tanto timestamp
como timestamptz
utiliza 8 ytes para almacenar valores de marca de tiempo.
Syntax: TIMESTAMP; or TIMESTAMPTZ;
ahora veamos un ejemplo para una mejor comprensión.,ase server a Asia/Calcuta como a continuación:
SET timezone = 'Asia/Calcutta';
ahora que nuestra zona horaria está establecida, insertaremos una nueva fila en la tabla timestamp_demo usando el siguiente comando:
INSERT INTO timestamp_demo (ts, tstz)VALUES ( '2020-06-22 19:10:25-07', '2020-06-22 19:10:25-07' );
ahora consultaremos los datos desde el timestamp
y timestamptz
columnas usando el siguiente comando:
SELECT ts, tstzFROM timestamp_demo;
salida:
Ejemplo 2:
En este ejemplo convertiremos la zona horaria de Asia/Calcuta en la zona horaria de América/New_York usando la función timezone(zone, timestamp)
.,>
columnas usando el siguiente comando:
CREATE TABLE timezone_conversion_demo ( tstz TIMESTAMPTZ);
luego estableceremos la zona horaria del servidor de base de datos en Asia/Calcuta como se muestra a continuación:
SET timezone = 'Asia/Calcutta';
ahora que nuestra zona horaria está establecida, insertaremos una nueva fila en la tabla timezone_conversion_demo usando el siguiente comando:
INSERT INTO timezone_conversion_demo ( tstz)VALUES ( '2020-06-22 19:10:25-07' );
ahora consultaremos los datos de las columnas timestamp
y timestamptz
usando el comando siguiente:
SELECT timezone('America/New_York', '2020-06-22 19:10:25');
salida: