Lo instalé PostgreSQL 9
y la hora que muestra es 1 hora por detrás de la hora del servidor.
Ejecución de Select NOW()
espectáculos:2011-07-12 11:51:50.453842+00
La fecha del servidor muestra: Tue Jul 12 12:51:40 BST 2011
Está 1 hora por detrás, pero la zona horaria que se muestra phppgadmin
es:TimeZone Etc/GMT0
He intentado entrar en el postgresql.conf
y configurar
zona horaria = GMT
luego ejecutando un reinicio pero sin cambios.
¿Alguna idea que pensé que solo habría usado la zona horaria del servidor, pero obviamente no?
¡SOLUCIÓN !: Me puse a GMT
antes y estaba una hora atrasado. después de buscar, resulta que necesitaba configurarlo Europe/London
. Esto tiene en cuenta la hora +1 en el horario de verano británico, ¡GMT no!
fuente
SET TIME ZONE 'UTC';
. Ver el doc .Elija uno
timezone
de:Y
set
como a continuación se muestra el ejemplo:Utilice su nombre de base de datos en lugar de
postgres
en la declaración anterior.fuente
SELECT pg_reload_conf();
:)SELECT pg_reload_conf()
regresar cierto, peronow()
yselect current_setting('TIMEZONE')
seguir para devolver valores de 'América / New_York'. ¿Es porque no soy superusuario?Para lograr el cambio de zona horaria en Postgres 9.1, debe:
1.- Busca en tu carpeta "timezones" en /usr/share/postgresql/9.1/ el archivo correspondiente, en mi caso sería "America.txt", en él busca la ubicación más cercana a tu zona y copia el primeras letras en la columna de la izquierda.
Por ejemplo: si estás en "Nueva York" o "Panamá" sería "EST":
2.- Descomente la línea "timezone" en su
postgresql.conf
archivo y ponga su zona horaria como se muestra:3.- Reiniciar Postgres
fuente
−05:00
año, mientras que Nueva York cambia una hora con el horario de verano (DST). Una zona horaria es más que un desplazamiento; una zona horaria incluye el conjunto de reglas y anomalías pasadas, presentes y futuras, como el horario de verano. Por lo tanto, decir lo que se refiere a:America/Panama
,America/New_York
,Europe/London
,UTC
(oZulu
).SELECT * FROM pg_timezone_names
que probablemente sea más seguro, dado que los sitios de terceros no necesariamente estarán tan actualizados (o desactualizado) como su propia instancia de base de datos particular.postgresql
select pg_reload_conf()
.La respuesta aceptada por Muhammad Usama es correcta.
Nombre del parámetro de configuración
Esa respuesta muestra cómo establecer un parámetro de configuración específico de Postgres con lo siguiente:
… Donde
timezone
no es un comando SQL, es el nombre del parámetro de configuración.Consulte el documento para esto .
Comando SQL estándar
Como alternativa, puede utilizar el comando SQL definido por la especificación SQL:
SET TIME ZONE
. En esta sintaxis, un par de palabrasTIME ZONE
reemplazan "timezone" (comando SQL real frente al nombre del parámetro), y no hay "TO".Tanto este comando como el anterior tienen el mismo efecto, para establecer el valor solo para la sesión actual. Para que el cambio sea permanente, consulte esta respuesta de hermanos .
Consulte el documento para esto .
Nombre de la zona horaria
Puede especificar un nombre de zona horaria adecuado . La mayoría de estos son continentes / regiones.
…o…
Evitar las 3 o 4 letras abreviaturas tales como
EST
oIST
, ya que no están estandarizados ni única. Consulte Wikipedia para obtener una lista de los nombres de las zonas horarias .Obtener zona actual
Para ver la zona horaria actual de una sesión, pruebe cualquiera de las siguientes declaraciones. Técnicamente, estamos llamando al
SHOW
comando para mostrar un parámetro de tiempo de ejecución.…o…
fuente
SHOW
papelSELECT current_setting('TIMEZONE')
Además de las respuestas anteriores, si usa la herramienta pgAdmin III , puede configurar la zona horaria de la siguiente manera:
fuente
Tenga en cuenta que muchos clientes de terceros tienen su propia configuración de zona horaria que se superpone a cualquier servidor de Postgres y / o configuración de sesión.
Por ejemplo, si está utilizando 'IntelliJ IDEA 2017.3' (o DataGrips), debe definir la zona horaria como:
'Propiedades de la fuente de base de datos' -> pestaña 'Avanzado' -> 'Opciones de VM': -Duser.timezone = UTC + 06: 00
de lo contrario, verá 'UTC' a pesar de lo que haya configurado en cualquier otro lugar.
fuente
Tal vez no esté relacionado con la pregunta, pero necesitaba usar CST, establecer la zona horaria del sistema en la tz deseada (América / ...) y luego en postgresql conf establecer el valor de la zona horaria en 'localtime' y funcionó como un encanto , current_time imprimiendo el momento adecuado (Postgresql 9.5 en Ubuntu 16)
fuente