sql >> Databasteknik >  >> RDS >> PostgreSQL

Få dagen från ett datum i PostgreSQL

I PostgreSQL kan du använda extract() funktion för att få dagen från ett datum.

Du kan också använda date_part() att göra samma sak.

När du extraherar dagen från ett datum måste du ange vilken betydelse av ordet "dag" du menar. Till exempel "veckodag", "dag i månaden", "dag på året" osv.

Exempel 1:Veckodag

Här är ett exempel på hur du använder extract() funktion för att extrahera veckodagen från ett datum.

Använder dow returnerar veckodagen som söndag (0) till 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 det här exemplet returnerade jag också dagens namn, så att det inte finns någon förvirring om vilken dag som faktiskt returneras.

Jag kommer att använda samma datum för de återstående exemplen, så jag behöver inte skriva ut dagens namn i dessa exempel.

Exempel 2:ISO-veckodag

Använder isodow returnerar veckodagen som måndag (1) till söndag (7).

SELECT extract(
    isodow from date '2020-12-27'
    ) AS "ISO Day of week";

Resultat:

 ISO Day of week 
-----------------
               7

Anledningen till att jag använde söndag i dessa exempel är för att den framhäver skillnaden mellan isodow och dow .

Exempel 3:Dag i månaden

När du använder tidsstämpel eller datum värden, day returnerar dagen i månaden (1 – 31).

SELECT extract(
    day from date '2020-12-27'
    ) AS "Day of month";

Resultat:

 Day of month 
--------------
           27

När du använder ett intervall värde, day fältet resulterar i antalet dagar som returneras.

SELECT extract(
    day from interval '32 weeks'
    ) AS "Number of days";

Resultat:

 Number of days 
----------------
            224

Exempel 4:Dag på året

Använder doy returnerar dagen på året (1 – 365/366).

SELECT extract(
    doy from date '2020-12-27'
    ) AS "Day of year";

Resultat:

 Day of year 
-------------
         362

Exempel 5:Funktionen date_part()

date_part() funktionen kan användas i stället för extract() fungera. Här är ett exempel.

SELECT date_part(
    'doy', timestamp '2020-12-27'
    ) AS "Day of year";

Resultat:

 Day of year 
-------------
         362

  1. MySQL felnummer 150

  2. MongoDB Basics:Konfigurera rollbaserad åtkomstkontroll (RBAC)

  3. Ansluter Ignition till Microsoft Access

  4. execSQL() med UPDATE uppdateras inte