Проблем:
Искате да получите текущото време с изместване на часовата зона в PostgreSQL база данни.
Решение:
Ще използваме функцията CURRENT_TIME, за да получим текущото време и информация за часовата зона. Ето заявката, която бихте написали:
SELECT CURRENT_TIME;
Ето резултата от заявката:
16:10:11.232455-05
Дискусия:
Функцията PostgreSQL CURRENT_TIME
връща текущото време и изместване на часовата зона на машината, на която работи PostgreSQL. Подава се като стойност в 'hh:mm:ss.nnnnnn+/-tz' формат. В този формат:
- чх е двуцифрен час.
- мм е 2-цифрена минута.
- с е 2-цифрена секунда.
- nnnnnn дефинира броя на частните секунди (т.е. точността) от 0 до 6.
- +tz или -tz е изместването на часовата зона, плюс или минус спрямо UTC.
CURRENT_TIME
няма скоби. Въпреки това, ако искате да покажете времето с определена точност, можете да добавите скоби и да поставите цяло число от 0 до 6. (Аргументът „0“ няма да върне дробни секунди, „1“ ще върне една дробна секунда (напр. място зад десетичната запетая) и т.н. Това ще върне времето с декларирания от вас брой дробни секунди и изместване на часовата зона. Вижте следващия пример:
SELECT CURRENT_TIME(2) ;
Ето резултата от заявката:
16:10:11.23-05
Този резултат съдържа 2-цифрена дробна секунда, защото поставяме 2 като аргумент. Изместването на часовата зона се показва като положително или отрицателно (+ или -) в зависимост от това дали времето е преди или след UTC.
Времето, върнато от тази функция, не се променя по време на транзакции или една заявка. Винаги е моментът, в който транзакцията е започнала.