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

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

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

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

Синтаксис

Синтаксисът е толкова прост, колкото става:

clock_timestamp()

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

Пример

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

SELECT clock_timestamp();

Резултат:

2020-07-01 09:53:22.823731+10

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

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

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

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

clock_timestamp | 2020-07-01 09:58:29.744838+10
pg_sleep        |
clock_timestamp | 2020-07-01 09:58:34.813448+10
pg_sleep        |
clock_timestamp | 2020-07-01 09:58:37.859197+10

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

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

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

SELECT 
  clock_timestamp(),
  clock_timestamp(),
  clock_timestamp();

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

clock_timestamp | 2020-07-01 10:03:10.828557+10
clock_timestamp | 2020-07-01 10:03:10.828558+10
clock_timestamp | 2020-07-01 10:03:10.828558+10

Тези примери използват вертикален изход (обикновено наричан разширен дисплей в 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. Постоянно задайте пътя на схемата на Postgresql

  2. date_trunc 5 минути интервал в PostgreSQL

  3. Upsert с транзакция

  4. Таблица като аргумент на функция на PostgreSQL

  5. Тестове на Parallel Go, изпълнени срещу PostgreSQL база данни, работеща на Docker