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

Как timeofday() работи в PostgreSQL

В PostgreSQL, timeofday() е не-SQL-стандартна функция за време, която връща текущата дата и час, със съкращението на часовата зона.

Това е подобно на clock_timestamp() функция, с изключение на това, че връща резултата си като форматиран text низ, а не timestamp with time zone стойност.

Резултатът от двете функции се променя по време на изпълнението на оператор. Следователно можете да получите различен резултат в различни части на израза, ако извикате функциите няколко пъти в рамките на един израз.

Синтаксис

Синтаксисът е така:

timeofday() 

Така че не приема никакви параметри.

Пример

Ето основен пример за демонстрация.

SELECT timeofday(); 

Резултат:

Чет, 2 юли 10:00:27.068776 2020 AEST

Множество обаждания

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

\x
SELECT 
  timeofday(),
  pg_sleep(5),
  timeofday(),
  pg_sleep(3),
  timeofday(); 

Резултат (с помощта на вертикален изход):

<преди>време на деня | Чет 2 юли 10:02:23.060770 2020 AESTpg_sleep | време на деня | Чет 02 юли 10:02:28.131195 2020 AESTpg_sleep | време на деня | чт, 2 юли 10:02:31.192749 2020 AEST

Тук използвах pg_sleep() функция за забавяне на изпълнението за няколко секунди. Първото повикване забавя изпълнението за 5 секунди, а второто повикване забавя изпълнението за 3 секунди.

Можем да видим, че всеки път timeofday() беше наречен, действителното време беше малко по-различно. Това се дължи най-вече на pg_sleep() функция, но тя също може да бъде малко по-различна без нея, в зависимост от това колко бързо се изпълнява заявката.

Ето го отново без pg_sleep() обаждания.

SELECT 
  timeofday(),
  timeofday(),
  timeofday(); 

Резултат (с помощта на вертикален изход):

<преди>време на деня | Чет 02 юли 10:03:26.044065 2020 AESTtimeofday | Чет 02 юли 10:03:26.044076 2020 AESTtimeofday | чт, 2 юли 10:03:26.044080 2020 AEST

Тези примери използват вертикален изход (обикновено наричан разширен дисплей в psql), за да улеснят четенето на резултатите.

Можете да превключвате разширеното показване в psql с \x .


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Име на динамична таблица на SQL заявка в FOR

  2. Сравняване на хранилища за данни за PostgreSQL - MVCC срещу InnoDB

  3. Postgres и индекси на външни ключове и първични ключове

  4. Бавно подреждане на заявките по колона в обединена таблица

  5. Postgresql извлича последния ред за всеки идентификатор