sql >> Database teknologi >  >> RDS >> PostgreSQL

Få dagen fra en date i PostgreSQL

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

  1. Hvordan kan jeg vælge fra liste over værdier i SQL Server

  2. Sådan henter du binært billede fra databasen ved hjælp af C# i ASP.NET

  3. Sådan forårsrenser du din database

  4. Hvordan installeres Postgis til en Keg-installation af [email protected] ved hjælp af Homebrew?