In PostgreSQL kun je het extract()
. gebruiken functie om de dag uit een datum te halen.
Je kunt ook date_part()
. gebruiken om hetzelfde te doen.
Wanneer u de dag uit een datum haalt, moet u specificeren welke betekenis van het woord "dag" u bedoelt. Bijvoorbeeld "dag van de week", "dag van de maand", "dag van het jaar", enz.
Voorbeeld 1:dag van de week
Hier is een voorbeeld van het gebruik van de extract()
functie om de dag van de week uit een datum te halen.
Met behulp van dow
geeft de dag van de week als zondag (0) tot en met zaterdag (6).
SELECT extract(dow from date '2020-12-27') AS "Day of week", to_char(date '2020-12-27', 'Day') AS "Day Name";
Resultaat:
Day of week | Day Name -------------+----------- 0 | Sunday
In dit voorbeeld heb ik ook de dagnaam geretourneerd, zodat er geen verwarring is over welke dag daadwerkelijk wordt geretourneerd.
Ik gebruik dezelfde datum voor de overige voorbeelden, dus ik hoef de dagnaam in die voorbeelden niet af te drukken.
Voorbeeld 2:ISO-dag van de week
isodow
gebruiken geeft de dag van de week terug als maandag (1) tot zondag (7).
SELECT extract( isodow from date '2020-12-27' ) AS "ISO Day of week";
Resultaat:
ISO Day of week ----------------- 7
De reden dat ik zondag in deze voorbeelden heb gebruikt, is omdat het het verschil benadrukt tussen isodow
en dow
.
Voorbeeld 3:Dag van de maand
Bij gebruik van tijdstempel of datum waarden, day
geeft de dag van de maand terug (1 – 31).
SELECT extract( day from date '2020-12-27' ) AS "Day of month";
Resultaat:
Day of month -------------- 27
Bij gebruik van een interval waarde, de day
veld resulteert in het aantal dagen dat wordt geretourneerd.
SELECT extract( day from interval '32 weeks' ) AS "Number of days";
Resultaat:
Number of days ---------------- 224
Voorbeeld 4:Dag van het jaar
doy
gebruiken geeft de dag van het jaar terug (1 – 365/366).
SELECT extract( doy from date '2020-12-27' ) AS "Day of year";
Resultaat:
Day of year ------------- 362
Voorbeeld 5:De functie date_part()
De date_part()
functie kan worden gebruikt in plaats van de extract()
functie. Hier is een voorbeeld.
SELECT date_part( 'doy', timestamp '2020-12-27' ) AS "Day of year";
Resultaat:
Day of year ------------- 362