Проблем:
Бихте искали да получите текущото време в база данни на PostgreSQL. Не искате изместването на часовата зона.
Решение:
Ще използваме функцията LOCALTIME
за да получите текущото време без изместване на часовата зона.
SELECT LOCALTIME;
Ето резултата от заявката:
22:15:51.987914
Дискусия:
Функцията PostgreSQL LOCALTIME
връща текущото време на машината, работеща с PostgreSQL. Връща го като тип данни за време в „hh:mm:ss.nnnnnn ' формат. В този формат:
- чх е двуцифрен час.
- мм е 2-цифрена минута.
- с е 2-цифрена секунда.
- nnnnnn са дробни секунди (от нула до 6-цифрена точност).
Както забелязвате, тази функция няма скоби. Въпреки това, ако искате да покажете времето с определена точност, използвайте скоби с цяло число от 0 до 6 като аргумент. Това ще върне времето с желания от вас брой части от секундите. Например, LOCALTIME(1)
обозначава само една дробна секунда (т.е. едно място след десетичната запетая); 2 ще върне две места и т.н. Стойността по подразбиране (без скоби или празни скоби) е шест, което също е максималният брой дробни секунди. Вижте следващия пример:
SELECT LOCALTIME(0) ;
Ето резултата от заявката:
21:12:06
Този резултат не съдържа дробни секунди, защото поставяме 0 като аргумент.
LOCALTIME
връща момента, в който започва текущата транзакция. Разликата между LOCALTIME
и CURRENT_TIME
е, че LOCALTIME не включва изместването на часовата зона.