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

Cómo obtener la fecha y hora actuales (sin zona horaria) en PostgreSQL

Problema:

Le gustaría obtener la fecha y la hora actuales en una base de datos de PostgreSQL. No necesita el desplazamiento de la zona horaria.

Solución:

Usaremos la función LOCALTIMESTAMP para obtener la fecha y hora actual sin información de zona horaria:

SELECT LOCALTIMESTAMP ;

Este es el resultado de la consulta:

2019-09-24 20:10:58.977914

Discusión:

La función PostgreSQL LOCALTIMESTAMP devuelve la fecha y la hora actuales (de la máquina que ejecuta esa instancia de PostgreSQL) como una marca de tiempo valor. Utiliza el 'YYYY-MM-DD hh:mm:ss.nnnnnnn ' formato, donde:

  • AAAA es un año de 4 dígitos.
  • MM es un mes de 2 dígitos.
  • DD es un día de 2 dígitos.
  • hh es una hora de 2 dígitos.
  • mm es un minuto de 2 dígitos.
  • ss es un segundo de 2 dígitos.
  • nnnnnn son fracciones de segundo (de cero a 6 dígitos de precisión).

Como notará, esta función no tiene paréntesis. Sin embargo, si desea mostrar la fecha y la hora con una precisión específica, coloque un número entero del 0 al 6 como argumento entre paréntesis. Esto devolverá la fecha y la hora con el número deseado de fracciones de segundo. Por ejemplo, LOCALTIMESTAMP(1) denota solo una fracción de segundo (es decir, un lugar después del decimal); 2 devolverá dos lugares, etc. La precisión predeterminada es 6, que también es el número máximo de fracciones de segundo; esto es lo que obtienes si no usas corchetes en absoluto. Mira el siguiente ejemplo:

SELECT LOCALTIMESTAMP(0) ;

Este es el resultado de la consulta:

2019-09-24 20:10:58

Este resultado no contiene fracciones de segundo porque ponemos 0 como argumento.

Esta función devuelve la hora en que comenzó la transacción actual. La diferencia entre LOCALTIMESTAMP y CURRENT_TIMESTAMP es que el LOCALTIMESTAMP no incluye el desplazamiento de la zona horaria.