MariaDB
 sql >> Database >  >> RDS >> MariaDB

4 Funzioni per restituire l'anno da una data in MariaDB

Di seguito sono elencate 4 funzioni che consentono di restituire l'anno da una data in MariaDB. Tre funzioni restituiscono solo l'anno e una restituisce sia l'anno che la settimana.

Il YEAR() Funzione

Il YEAR() la funzione restituisce l'anno per una data data. Il risultato è nell'intervallo 1000 a 9999 o 0 per le date che hanno un anno zero (come 0000-00-00 ).

Esempio:

SELECT YEAR('2023-07-25');

Risultato:

+--------------------+
| YEAR('2023-07-25') |
+--------------------+
|               2023 |
+--------------------+

Il EXTRACT() Funzione

Il EXTRACT () la funzione consente di estrarre un'unità specificata dalla data. Pertanto, puoi usarlo per estrarre l'anno (così come altre unità) dalla data.

Esempio:

SELECT EXTRACT(YEAR FROM '2023-07-25');

Risultato:

+---------------------------------+
| EXTRACT(YEAR FROM '2023-07-25') |
+---------------------------------+
|                            2023 |
+---------------------------------+

Il DATE_FORMAT() Funzione

Il DATE_FORMAT() La funzione consente di formattare una data in base a una stringa di formato. La stringa di formato specifica come deve essere formattata la data.

È quindi possibile utilizzare questa funzione per restituire l'anno (così come qualsiasi altra unità) dalla data. Esistono diversi specificatori di formato per la restituzione dell'anno in diversi formati. Ad esempio un anno a quattro cifre, un anno a due cifre, ecc.

Ecco un esempio che restituisce l'anno in varie forme:

SELECT 
    DATE_FORMAT('2023-01-01', '%X') AS "%X",
    DATE_FORMAT('2023-01-01', '%x') AS "%x",
    DATE_FORMAT('2023-01-01', '%Y') AS "%Y",
    DATE_FORMAT('2023-01-01', '%y') AS "%y";

Risultato:

+------+------+------+------+
| %X   | %x   | %Y   | %y   |
+------+------+------+------+
| 2023 | 2022 | 2023 | 23   |
+------+------+------+------+

Nota che %x restituito un numero di anno diverso rispetto agli altri.

Ecco una descrizione di ciascuno di questi identificatori di formato, che spiega perché %x ha restituito un risultato diverso:

Specificatore di formato Descrizione
%X Anno con 4 cifre quando il primo giorno della settimana è domenica. Usato con %V .
%x Anno con 4 cifre quando il primo giorno della settimana è lunedì. Usato con %v .
%Y Anno con 4 cifre.
%y Anno con 2 cifre.

Ed ecco una descrizione di %V e %v come indicato nella tabella sopra:

Specificatore di formato Descrizione
%V Numero della settimana (01-53), quando il primo giorno della settimana è la domenica. Usato con %X .
%v Numero della settimana (01-53), quando il primo giorno della settimana è lunedì. Usato con %x .

Quindi potremmo aggiungere quegli identificatori di formato all'esempio sopra e ottenere quanto segue:

SELECT 
    DATE_FORMAT('2023-01-01', '%X, %V') AS "%X, %V",
    DATE_FORMAT('2023-01-01', '%x, %v') AS "%x, %v";

Risultato:

+----------+----------+
| %X, %V   | %x, %v   |
+----------+----------+
| 2023, 01 | 2022, 52 |
+----------+----------+

Nota che %x non restituirà sempre un anno diverso, dipende dalla data effettiva utilizzata. A volte è %X che restituisce un anno diverso dagli altri.

Anticipiamo la data di un anno:

SELECT 
    DATE_FORMAT('2024-01-01', '%X') AS "%X",
    DATE_FORMAT('2024-01-01', '%x') AS "%x",
    DATE_FORMAT('2024-01-01', '%Y') AS "%Y",
    DATE_FORMAT('2024-01-01', '%y') AS "%y";

Risultato:

+------+------+------+------+
| %X   | %x   | %Y   | %y   |
+------+------+------+------+
| 2023 | 2024 | 2024 | 24   |
+------+------+------+------+

Questa volta è %X questo è quello strano. Come spiegato nella tabella sopra, dipende dal fatto che il primo giorno della settimana sia domenica o lunedì.

Ovviamente, se ci spostiamo più avanti nell'anno, tutti gli specificatori di formato restituiscono lo stesso anno:

SELECT 
    DATE_FORMAT('2024-12-12', '%X') AS "%X",
    DATE_FORMAT('2024-12-12', '%x') AS "%x",
    DATE_FORMAT('2024-12-12', '%Y') AS "%Y",
    DATE_FORMAT('2024-12-12', '%y') AS "%y";

Risultato:

+------+------+------+------+
| %X   | %x   | %Y   | %y   |
+------+------+------+------+
| 2024 | 2024 | 2024 | 24   |
+------+------+------+------+

Vedi Stringhe di formato MariaDB per un elenco completo di stringhe di formato/specificatori.

Il YEARWEEK() Funzione

Il YEARWEEK() la funzione restituisce l'anno e la settimana per una data data.

Esempio:

SELECT YEARWEEK('2023-01-01');

Risultato:

+------------------------+
| YEARWEEK('2023-01-01') |
+------------------------+
|                 202301 |
+------------------------+

L'anno nel risultato potrebbe essere diverso dall'anno nell'argomento data per la prima e l'ultima settimana dell'anno.

Ecco cosa succede se andiamo avanti di un anno:

SELECT YEARWEEK('2024-01-01');

Risultato:

+------------------------+
| YEARWEEK('2024-01-01') |
+------------------------+
|                 202353 |
+------------------------+

Il YEARWEEK() La funzione accetta un secondo argomento facoltativo per specificare la modalità. Il risultato effettivo che si ottiene da questa funzione dipenderà dalla modalità utilizzata. Se l'argomento mode viene omesso, il valore del default_week_format viene utilizzata la variabile di sistema.

Guarda come YEARWEEK() Funziona in MariaDB per ulteriori informazioni sulle modalità e sugli esempi di ciascuno.