sql >> Database >  >> RDS >> PostgreSQL

Haal de dag van een datum in PostgreSQL

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

  1. Is er een manier om de weergavedefinitie van een SQL Server op te halen met behulp van gewone ADO?

  2. Genereer DEFAULT-waarden in een CTE UPSERT met behulp van PostgreSQL 9.3

  3. SQLite-gegevens naar een RecyclerView

  4. Een weergave maken met de ORDER BY-component