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

Как да получите текущата дата и час с изместване на часовата зона в PostgreSQL

Проблем:

Искате да получите текущата дата и час с информация за часовата зона от PostgreSQL база данни.

Решение:

Ще използваме или CURRENT_TIMESTAMP, или NOW(), за да получим текущата дата и час с изместване на часовата зона.

SELECT CURRENT_TIMESTAMP ;

Ето резултата от заявката:

2019-09-15 13:13:12.118432+02

Дискусия:

CURRENT_TIMESTAMP връща текущата дата, час и изместване на часовата зона (използвайки датата, часа и часовата зона на машината, на която работи PostgreSQL). Това се връща като стойност в „ГГГГ-ММ-ДД hh:mm:ss.nnnnnn+/-tz“ формат. В този формат:

  • ГГГГ е 4-цифрена година.
  • ММ е двуцифрен месец.
  • DD е двуцифрен ден от месеца.
  • чх е двуцифрен час.
  • мм е 2-цифрена минута.
  • с е 2-цифрена секунда.
  • nnnnnn дефинира броя на частните секунди (т.е. точността) от 0 до 6.
  • +tz или -tz е изместването на часовата зона, плюс или минус спрямо UTC.

Както забелязвате, тази функция няма скоби. Въпреки това, ако искате да покажете дата и час с конкретна точност, можете да използвате незадължителния целочислен аргумент. Връща дата и час с части от секунди и изместване на часовата зона. Този аргумент трябва да е в диапазона от 0 до 6; 0 не е дробна секунда, 1 е една дробна секунда (например едно място след десетичната запетая) и т.н. Вижте следващия пример:

SELECT CURRENT_TIMESTAMP(3) ;

Ето резултата от заявката:

2019-09-15 13:01:51.142+02

Този резултат съдържа 3-цифрена част от секундата, защото сме поставили 3 като аргумент във функцията CURRENT_TIMESTAMP. Изместването на часовата зона все още се показва в края.

Времето, върнато от тази функция, не се променя по време на транзакции или една заявка. Винаги е моментът, в който транзакцията е започнала.

NOW() е подобен на CURRENT_TIMESTAMP функция и връща същия резултат. Разликата е, че CURRENT_TIMESTAMP е стандартната функция на SQL, докато NOW() е специфична за PostgreSQL.

SELECT NOW() ;

Ето резултата от заявката:

2019-08-27 12:18:55.324145+02

Имайте предвид, че функцията NOW() изисква скоби. Можете обаче да ги оставите празни и да получите стойността по подразбиране.

CURRENT_TIMESTAMP и NOW() връщат timestamptz тип данни.


  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. Управление и наблюдение на база данни за PostgreSQL 12

  3. Как да изброя записи с дата от последните 10 дни?

  4. Как да избера 1d масив от 2d масив?

  5. INSERT с име на динамична таблица в тригерна функция