MongoDB
 sql >> Database >  >> NoSQL >> MongoDB

Come ottenere il giorno, il mese e l'anno da una data in SQL

La maggior parte dei principali RDBMS dispone di funzioni che ci consentono di estrarre giorno, mese e anno dai valori datetime.

Alcuni RDBMS forniscono diversi modi per farlo e altri sono più limitati. Di seguito sono riportati esempi di estrazione di giorno, mese e anno dai valori di data in alcuni dei più diffusi RDBMS.

MySQL

MySQL ha diverse funzioni che possono essere utilizzate per estrarre giorno, mese e anno da una data. Uno di questi è EXTRACT() funzione:

SELECT 
    EXTRACT(DAY FROM '2035-12-19') AS Day,
    EXTRACT(MONTH FROM '2035-12-19') AS Month,
    EXTRACT(YEAR FROM '2035-12-19') AS Year;

Risultato:

+------+-------+------+
| Day  | Month | Year |
+------+-------+------+
|   19 |    12 | 2035 |
+------+-------+------+

In questo caso, ho estratto ogni parte della data nel proprio campo.

Se desideri che tutte le parti della data vengano restituite nello stesso campo, DATE_FORMAT() la funzione può farlo per te.

MySQL ha anche una serie di funzioni che restituiscono parti di data specifiche da una data, come DAY() , MONTH() , YEAR() , ecc.

Vedi Restituire il giorno, il mese e l'anno in MySQL per altri esempi.

Oracolo

Oracle ha un TO_CHAR() funzione che può essere utilizzata per estrarre parti di data nei propri campi o tutte in un unico campo. Ecco un esempio di restituzione nei singoli campi:

SELECT 
    TO_CHAR(DATE '2035-09-26', 'Day') AS Day,
    TO_CHAR(DATE '2035-09-26', 'DD') AS DD,
    TO_CHAR(DATE '2035-09-26', 'Month') AS Month,
    TO_CHAR(DATE '2035-09-26', 'YYYY') AS Year
FROM DUAL;

Risultato:

         DAY    DD        MONTH    YEAR 
____________ _____ ____________ _______ 
Wednesday    26    September    2035    

Consulta questo elenco completo di elementi di formato DateTime in Oracle per un elenco di elementi di formato che possono essere utilizzati per formattare i valori DateTime con questa funzione.

Oracle ha anche un EXTRACT() funzione che funziona come l'omonima funzione di MySQL.

SQL Server

SQL Server dispone di una gamma piuttosto ampia di funzioni che possono restituire parti di data come giorno, mese e anno.

Il DATEPART() la funzione è progettata specificamente per restituire parti specifiche di una data:

DECLARE @date date = '2045-07-03'; 
SELECT 
    DATEPART(day, @date) AS DAY, 
    DATEPART(weekday, @date) AS WEEKDAY, 
    DATEPART(month, @date) AS MONTH, 
    DATEPART(year, @date) AS YEAR;

Risultato:

+-------+-----------+---------+--------+
| DAY   | WEEKDAY   | MONTH   | YEAR   |
|-------+-----------+---------+--------|
| 3     | 2         | 7       | 2045   |
+-------+-----------+---------+--------+

Una funzione simile è DATENAME() , che può restituire i nomi di giorni e mesi come una stringa.

SQL Server dispone anche di funzioni come DAY() , MONTH() , YEAR() , ecc. che restituiscono una parte di data specifica.

E non dimentichiamo il FORMAT() funzione, che è perfetta se vuoi restituire tutte le parti della data nello stesso campo.

Vedere 6 funzioni per ottenere il giorno, il mese e l'anno da una data in SQL Server per altri esempi.

PostgreSQL

PostgreSQL ha alcune funzioni che possono restituire parti di date dalle date.

Ecco un esempio di DATE_PART() funzione:

SELECT 
    DATE_PART('DAY', date '2035-10-30') AS "Day",
    DATE_PART('DOW', date '2035-10-30') AS "DOW",
    DATE_PART('DOY', date '2035-10-30') AS "DOY",
    DATE_PART('MONTH', date '2035-10-30') AS "Month",
    DATE_PART('YEAR', date '2035-10-30') AS "Year";

Risultato:

 Day | DOW | DOY | Month | Year 
-----+-----+-----+-------+------
  30 |   2 | 303 |    10 | 2035

PostgreSQL ha anche un EXTRACT() funzione che sostanzialmente fa la stessa cosa, tranne che con una sintassi leggermente diversa.

E il TO_CHAR() la funzione può essere utilizzata se si desidera restituire più parti di data nello stesso campo.

SQLite

SQLite è più limitato quando si tratta di funzioni di data e ora. Tuttavia, puoi ancora utilizzare STRFTIME() funzione per estrarre giorno, mese e anno da una data:

SELECT STRFTIME('%d %m %Y', '2035-12-01');

Risultato:

01 12 2035

In questo esempio, ho restituito tutte le parti della data nello stesso campo. Ma questo non è necessariamente richiesto. Se vuoi che vengano restituiti in campi diversi, puoi chiamare STRFTIME() più volte, ognuna con un elemento di formato diverso:

SELECT 
    strftime('%d', '2035-12-01') AS "Day",
    strftime('%m', '2035-12-01') AS "Month",
    strftime('%Y', '2035-12-01') AS "Year";

Risultato:

Day  Month  Year
---  -----  ----
01   12     2035

MariaDB

MariaDB offre un'ampia selezione di funzioni che possono restituire il giorno, il mese e l'anno da un valore datetime.

Ecco un esempio di DATE_FORMAT() funzione:

SELECT DATE_FORMAT('2023-07-25', '%W, %D %M %Y');

Risultato:

+-------------------------------------------+
| DATE_FORMAT('2023-07-25', '%W, %D %M %Y') |
+-------------------------------------------+
| Tuesday, 25th July 2023                   |
+-------------------------------------------+

Questa funzione ci consente di restituire tutte le parti della data in un unico campo (sebbene ciò non sia richiesto:puoi altrettanto facilmente restituire ciascuna parte della data in un campo diverso chiamando DATE_FORMAT() più volte, ogni volta con una stringa di formato diversa).

E come alcuni degli altri, anche MariaDB ha un EXTRACT() funzione che estrae una data parte.

E c'è anche una vasta gamma di funzioni specifiche per ogni parte della data, come DAY() , MONTH() , YEAR() , ecc

Consulta 11 funzioni per ottenere il giorno, il mese e l'anno da una data in MariaDB per un riepilogo completo.