I PostgreSQL kan du bruge extract()
funktion for at få dagen fra en dato.
Du kan også bruge date_part()
at gøre det samme.
Når du uddrager dagen fra en dato, skal du angive, hvilken betydning af ordet "dag" du mener. For eksempel "ugedag", "dag i måneden", "årsdag" osv.
Eksempel 1:Ugedag
Her er et eksempel på brug af extract()
funktion til at udtrække ugedagen fra en dato.
Brug af dow
returnerer ugedagen som søndag (0) til lørdag (6).
SELECT extract(dow from date '2020-12-27') AS "Day of week", to_char(date '2020-12-27', 'Day') AS "Day Name";
Resultat:
Day of week | Day Name -------------+----------- 0 | Sunday
I dette eksempel returnerede jeg også dagens navn, så der ikke er nogen forvirring om, hvilken dag der rent faktisk bliver returneret.
Jeg bruger den samme dato for de resterende eksempler, så der er ingen grund til, at jeg skal udskrive dagens navn i disse eksempler.
Eksempel 2:ISO-ugedag
Brug af isodow
returnerer ugedagen som mandag (1) til søndag (7).
SELECT extract( isodow from date '2020-12-27' ) AS "ISO Day of week";
Resultat:
ISO Day of week ----------------- 7
Grunden til, at jeg brugte søndag i disse eksempler, er fordi den fremhæver forskellen mellem isodow
og dow
.
Eksempel 3:Dag i måneden
Når du bruger tidsstempel eller dato værdier, day
returnerer dagen i måneden (1 – 31).
SELECT extract( day from date '2020-12-27' ) AS "Day of month";
Resultat:
Day of month -------------- 27
Når du bruger et interval værdi, day
felt resulterer i antallet af dage, der returneres.
SELECT extract( day from interval '32 weeks' ) AS "Number of days";
Resultat:
Number of days ---------------- 224
Eksempel 4:Dag på året
Bruger doy
returnerer dagen i året (1 – 365/366).
SELECT extract( doy from date '2020-12-27' ) AS "Day of year";
Resultat:
Day of year ------------- 362
Eksempel 5:Date_part()-funktionen
date_part()
funktionen kan bruges i stedet for extract()
fungere. Her er et eksempel.
SELECT date_part( 'doy', timestamp '2020-12-27' ) AS "Day of year";
Resultat:
Day of year ------------- 362