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.