sql >> Base de Datos >  >> RDS >> PostgreSQL

Cómo convertir una cadena en una marca de tiempo en PostgreSQL

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.