PostgreSQL
 sql >> база данни >  >> RDS >> PostgreSQL

Дата и час в UTC - как да ги съхранявам в postgres?

използвайте timestamptz той ще съхранява вашето времево клеймо в UTC. и ще го покаже на клиента според локала му.

https://www.postgresql.org/docs/current/static /datatype-datetime.html

актуализирано с друга добра точка от Lukasz , трябваше да спомена:

Ако не направите това, това ще доведе до дата „2017-12-31“ с час „23:01:01“ в друга часова зона всъщност ще бъде не само различно време, но и различна дата с различни ГОДИНА, МЕСЕЦ и ДЕН

друга актуализация Според Лоренц забележете, не забравяйте горния цитат на документитеВъведена стойност, която има изрично посочена часова зона, се преобразува в UTC, като се използва подходящото отместване за тази часова зона . Което означава, че трябва внимателно да управлявате датите за въвеждане. Напр.:

t=# create table t(t timestamptz);
CREATE TABLE
t=# set timezone to 'GMT+5';
SET
t=# insert into t select '2017-01-01 00:00:00';
INSERT 0 1
t=# insert into t select '2017-01-01 00:00:00' at time zone 'UTC';
INSERT 0 1
t=# insert into t select '2017-01-01 00:00:00+02';
INSERT 0 1
t=# select * from t;
           t
------------------------
 2017-01-01 00:00:00-05
 2017-01-01 05:00:00-05
 2016-12-31 17:00:00-05
(3 rows)



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. PostgreSQL, тригери и паралелност за налагане на временен ключ

  2. Има ли начин да се използват масиви в Entity Framework + PostgreSql

  3. Как да премахнете неизползваните временни файлове от управлявания от Google Cloud SQL Postgres?

  4. SQL LIMIT с клауза WHERE

  5. Heroku PG:Достъпът за възстановяване на запис е отменен