В PostgreSQL, date_part()
функцията извлича подполета като година, месец, час или минута, част от стойност за дата/час.
Това е еквивалентно на extract()
функция, макар и с малко по-различен синтаксис.
Синтаксис
Функцията има следния синтаксис:
date_part('field', source)
Къде:
'field'
е за частта от датата, която искате да извлечете. Този параметър трябва да бъде стойност на низ, а не име. Вижте по-долу за списък с валидни имена на полета.source
е времево клеймо или винтервала от която искате частта с датата да бъде извлечена.
Пример – Timestamp
Ето основен пример, за да демонстрирате как да извлечете поле от времево клеймо .
SELECT date_part('hour', timestamp '2020-09-16 22:33:15');
Резултат:
22
Този пример извлича полето за час от timestamp стойност.
Ето го отново, но този път извличам полето за годината.
SELECT date_part('year', timestamp '2020-09-16 22:33:15');
Резултат:
2020
Пример – Интервал
В този пример извличам част от дата от интервал стойност.
SELECT date_part('hour', interval '5 hours 30 minutes');
Резултат:
5
В следващия пример функцията връща правилно броя на часовете, въпреки че предоставям само броя на минутите.
SELECT date_part('hour', interval '120 minutes');
Резултат:
2
Въпреки това, не разчитайте на тази техника. Може да откриете, че не винаги получавате резултата, който очаквате.
Например:
SELECT date_part('hour', interval '100 minutes');
Резултат:
1
И още едно:
SELECT date_part('minute', interval '2 hours');
Резултат:
0
Имена на полета
Първият аргумент може да бъде някой от следните:
century
day
decade
dow
doy
epoch
hour
isodow
isoyear
microseconds
millennium
milliseconds
minute
month
quarter
second
timezone
timezone_hour
timezone_minute
week
year