W PostgreSQL możesz użyć extract()
funkcja, aby uzyskać dzień od daty.
Możesz także użyć date_part()
zrobić to samo.
Wyodrębniając dzień z daty, musisz określić, jakie znaczenie ma na myśli słowo „dzień”. Na przykład „dzień tygodnia”, „dzień miesiąca”, „dzień roku” itp.
Przykład 1:Dzień tygodnia
Oto przykład użycia extract()
funkcja wyodrębniania dnia tygodnia z daty.
Korzystanie z dow
zwraca dzień tygodnia od niedzieli (0) do soboty (6).
SELECT extract(dow from date '2020-12-27') AS "Day of week", to_char(date '2020-12-27', 'Day') AS "Day Name";
Wynik:
Day of week | Day Name -------------+----------- 0 | Sunday
W tym przykładzie zwróciłem również nazwę dnia, aby nie było nieporozumień co do tego, który dzień jest faktycznie zwracany.
W pozostałych przykładach użyję tej samej daty, więc nie ma potrzeby drukowania nazwy dnia w tych przykładach.
Przykład 2:Dzień tygodnia ISO
Używanie isodow
zwraca dzień tygodnia od poniedziałku (1) do niedzieli (7).
SELECT extract( isodow from date '2020-12-27' ) AS "ISO Day of week";
Wynik:
ISO Day of week ----------------- 7
Powodem, dla którego użyłem Sunday w tych przykładach, jest to, że podkreśla różnicę między isodow
i dow
.
Przykład 3:Dzień miesiąca
Gdy używasz sygnatury czasowej lub data wartości, day
zwraca dzień miesiąca (1 – 31).
SELECT extract( day from date '2020-12-27' ) AS "Day of month";
Wynik:
Day of month -------------- 27
Podczas korzystania z przedziału wartość, day
pole powoduje zwrócenie liczby dni.
SELECT extract( day from interval '32 weeks' ) AS "Number of days";
Wynik:
Number of days ---------------- 224
Przykład 4:Dzień roku
Korzystanie z doy
zwraca dzień roku (1 – 365/366).
SELECT extract( doy from date '2020-12-27' ) AS "Day of year";
Wynik:
Day of year ------------- 362
Przykład 5:Funkcja date_part()
date_part()
funkcja może być użyta zamiast extract()
funkcjonować. Oto przykład.
SELECT date_part( 'doy', timestamp '2020-12-27' ) AS "Day of year";
Wynik:
Day of year ------------- 362