V PostgreSQL můžete použít extract()
funkce pro získání dne z data.
Můžete také použít date_part()
udělat to samé.
Při extrakci dne z data musíte určit, jaký význam slova „den“ máte na mysli. Například „den v týdnu“, „den v měsíci“, „den v roce“ atd.
Příklad 1:Den v týdnu
Zde je příklad použití extract()
funkce pro extrahování dne v týdnu z data.
Pomocí dow
vrátí den v týdnu od neděle (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";
Výsledek:
Day of week | Day Name -------------+----------- 0 | Sunday
V tomto příkladu jsem také vrátil název dne, aby nedošlo k záměně ohledně toho, který den se skutečně vrací.
Pro zbývající příklady použiji stejné datum, takže v těchto příkladech nemusím tisknout název dne.
Příklad 2:ISO den v týdnu
Pomocí isodow
vrátí den v týdnu od pondělí (1) do neděle (7).
SELECT extract( isodow from date '2020-12-27' ) AS "ISO Day of week";
Výsledek:
ISO Day of week ----------------- 7
Důvod, proč jsem v těchto příkladech použil neděli, je ten, že zdůrazňuje rozdíl mezi isodow
a dow
.
Příklad 3:Den v měsíci
Při použití časového razítka nebo datum hodnoty, day
vrátí den v měsíci (1 – 31).
SELECT extract( day from date '2020-12-27' ) AS "Day of month";
Výsledek:
Day of month -------------- 27
Při použití intervalu hodnotu, day
pole má za následek počet vrácených dní.
SELECT extract( day from interval '32 weeks' ) AS "Number of days";
Výsledek:
Number of days ---------------- 224
Příklad 4:Den v roce
Pomocí doy
vrátí den v roce (1 – 365/366).
SELECT extract( doy from date '2020-12-27' ) AS "Day of year";
Výsledek:
Day of year ------------- 362
Příklad 5:Funkce date_part()
date_part()
funkci lze použít místo extract()
funkce. Zde je příklad.
SELECT date_part( 'doy', timestamp '2020-12-27' ) AS "Day of year";
Výsledek:
Day of year ------------- 362