В PostgreSQL можете да използвате extract()
функция за получаване на деня от дата.
Можете също да използвате date_part()
да направи същото.
Когато извличате деня от дата, трябва да посочите какъв смисъл на думата „ден“ имате предвид. Например „ден от седмицата“, „ден от месеца“, „ден от годината“ и т.н.
Пример 1:Ден от седмицата
Ето пример за използване на extract()
функция за извличане на деня от седмицата от дата.
Използване на dow
връща деня от седмицата като неделя (0) до събота (6).
SELECT extract(dow from date '2020-12-27') AS "Day of week", to_char(date '2020-12-27', 'Day') AS "Day Name";
Резултат:
Day of week | Day Name -------------+----------- 0 | Sunday
В този пример върнах и името на деня, така че да няма объркване кой ден всъщност се връща.
Ще използвам същата дата за останалите примери, така че няма нужда да разпечатвам името на деня в тези примери.
Пример 2:ISO ден от седмицата
Използване на isodow
връща деня от седмицата като понеделник (1) до неделя (7).
SELECT extract( isodow from date '2020-12-27' ) AS "ISO Day of week";
Резултат:
ISO Day of week ----------------- 7
Причината да използвам неделя в тези примери е, защото подчертава разликата между isodow
и dow
.
Пример 3:Ден от месеца
Когато използвате timestamp или дата стойности, day
връща деня от месеца (1 – 31).
SELECT extract( day from date '2020-12-27' ) AS "Day of month";
Резултат:
Day of month -------------- 27
При използване на интервали стойност, day
поле води до броя дни, които се връщат.
SELECT extract( day from interval '32 weeks' ) AS "Number of days";
Резултат:
Number of days ---------------- 224
Пример 4:Ден от годината
Използване на doy
връща деня от годината (1 – 365/366).
SELECT extract( doy from date '2020-12-27' ) AS "Day of year";
Резултат:
Day of year ------------- 362
Пример 5:Функцията date_part()
date_part()
функцията може да се използва вместо extract()
функция. Ето един пример.
SELECT date_part( 'doy', timestamp '2020-12-27' ) AS "Day of year";
Резултат:
Day of year ------------- 362