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

Ottieni il giorno da una data in PostgreSQL

In PostgreSQL puoi usare extract() funzione per ottenere il giorno da una data.

Puoi anche usare date_part() fare la stessa cosa.

Quando si estrae il giorno da una data, è necessario specificare il senso della parola "giorno" che si intende. Ad esempio, "giorno della settimana", "giorno del mese", "giorno dell'anno", ecc.

Esempio 1:giorno della settimana

Ecco un esempio di utilizzo di extract() funzione per estrarre il giorno della settimana da una data.

Usando dow restituisce il giorno della settimana da domenica (0) a sabato (6).

SELECT 
  extract(dow from date '2020-12-27') AS "Day of week",
  to_char(date '2020-12-27', 'Day') AS "Day Name";

Risultato:

 Day of week | Day Name  
-------------+-----------
           0 | Sunday   

In questo esempio ho anche restituito il nome del giorno, in modo che non ci sia confusione su quale giorno viene effettivamente restituito.

Userò la stessa data per gli esempi rimanenti, quindi non è necessario che stampi il nome del giorno in quegli esempi.

Esempio 2:giorno della settimana ISO

Usando isodow restituisce il giorno della settimana da lunedì (1) a domenica (7).

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

Risultato:

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

Il motivo per cui ho usato Sunday in questi esempi è perché evidenzia la differenza tra isodow e dow .

Esempio 3:giorno del mese

Quando si utilizza il timestamp o data valori, day restituisce il giorno del mese (1 – 31).

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

Risultato:

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

Quando si utilizza un intervallo valore, il day campo restituisce il numero di giorni restituiti.

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

Risultato:

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

Esempio 4:giorno dell'anno

Usando doy restituisce il giorno dell'anno (1 – 365/366).

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

Risultato:

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

Esempio 5:la funzione date_part()

Il date_part() può essere utilizzata al posto di extract() funzione. Ecco un esempio.

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

Risultato:

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