В 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
.