Problema:
Le gustaría convertir una cadena que contiene información de fecha y hora en una marca de tiempo en PostgreSQL.
Convirtamos una cadena que contiene información de fecha, hora y zona horaria al tipo de datos timestamptz.
Solución:
Usaremos el TO_TIMESTAMP()
función. Esta es la consulta que escribirías:
SELECT TO_TIMESTAMP('2018/08/27/15:23:45', 'YYYY/MM/DD/HH24:MI:ss') AS new_timestamptz;
Este es el resultado de la consulta:
new_timestamptz |
---|
2018-08-27 15:23:45+02 |
Discusión:
Utilice la función de PostgreSQL TO_TIMESTAMP()
cuando desea convertir una cadena que contiene datos de fecha y hora a la marca de tiempo tipo de datos. Esta función toma dos argumentos:una cadena que contiene una fecha y una hora (en nuestro ejemplo, el texto '2018/08/27/15:23:45
') y el formato de entrada (en nuestro ejemplo, 'YYYY/MM/DD/HH24:MI:ss
'). El formato de entrada indica cómo se deben convertir los caracteres de la cadena. Estos son los elementos principales del patrón anterior:
- AAAA representa un año de 4 dígitos.
- MM representa un mes de 2 dígitos.
- DD representa un día del mes de 2 dígitos.
- HH24 representa una hora de 2 dígitos (de 00 a 23).
- MI representa un minuto de 2 dígitos (de 00 a 59).
- ss representa un segundo de 2 dígitos (de 00 a 59).
Tenga en cuenta que usamos barras inclinadas (/) como delimitadores de parte de fecha y dos puntos (:) como delimitadores de parte de tiempo. Puede encontrar una lista completa de elementos de patrón de fecha y hora en la documentación de PostgreSQL.
Observe que el formato de entrada es una cadena. La función TO_TIMESTAMP() devuelve un timestamptz valor con información de zona horaria.
En nuestro ejemplo, la fecha y hora del texto '2018/08/27/15:23:45
'fue convertido a la marca de tiempo valor 2018-08-27 15:23:45+02
. La marca de tiempo el tipo de datos es más legible.