Di seguito sono elencate 5 funzioni che consentono di restituire il numero della settimana da una data in MariaDB. Quattro restituiscono solo la settimana e uno restituisce sia la settimana che l'anno insieme.
La WEEK()
Funzione
La WEEK()
la funzione restituisce la settimana per una data data.
Esempio:
SELECT WEEK('2023-07-25');
Risultato:
+--------------------+ | WEEK('2023-07-25') | +--------------------+ | 30 | +--------------------+
La WEEK()
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 WEEK()
Funziona in MariaDB per ulteriori informazioni sulle modalità e sugli esempi di ciascuno.
Il EXTRACT()
Funzione
Il
la funzione consente di estrarre un'unità specificata dalla data. Pertanto, puoi usarlo per estrarre la settimana (così come altre unità) dalla data.EXTRACT
()
Esempio:
SELECT EXTRACT(WEEK FROM '2023-07-25');
Risultato:
+---------------------------------+ | EXTRACT(WEEK FROM '2023-07-25') | +---------------------------------+ | 30 | +---------------------------------+
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 la settimana (così come qualsiasi altra unità) dalla data. Esistono varie opzioni per restituire il numero della settimana, a seconda del giorno in cui inizia la settimana, ecc.
Ecco un esempio che restituisce la settimana in varie forme:
SELECT
DATE_FORMAT('2023-01-01', '%U') AS "%U",
DATE_FORMAT('2023-01-01', '%u') AS "%u",
DATE_FORMAT('2023-01-01', '%V') AS "%V",
DATE_FORMAT('2023-01-01', '%v') AS "%v";
Risultato:
+------+------+------+------+ | %U | %u | %V | %v | +------+------+------+------+ | 01 | 00 | 01 | 52 | +------+------+------+------+
Ecco una descrizione di ciascuno di questi identificatori di formato:
Specificatore di formato | Descrizione |
---|---|
%U | Numero della settimana (00-53), quando il primo giorno della settimana è domenica. |
%u | Numero della settimana (00-53), quando il primo giorno della settimana è lunedì. |
%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 . |
Ed ecco una descrizione di %X
e %x
come indicato nella tabella sopra:
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 . |
Possiamo combinare gli specificatori di formato per restituire insieme l'anno e la settimana, se necessario:
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 il numero della settimana non rifletterà sempre gli esempi sopra, dipende dalla data effettiva utilizzata.
Anticipiamo la data di un anno:
SELECT
DATE_FORMAT('2024-01-01', '%U') AS "%U",
DATE_FORMAT('2024-01-01', '%u') AS "%u",
DATE_FORMAT('2024-01-01', '%V') AS "%V",
DATE_FORMAT('2024-01-01', '%v') AS "%v";
Risultato:
+------+------+------+------+ | %U | %u | %V | %v | +------+------+------+------+ | 00 | 01 | 53 | 01 | +------+------+------+------+
Questa volta otteniamo un diverso insieme di risultati.
Ecco cosa succede quando andiamo avanti nell'anno:
SELECT
DATE_FORMAT('2024-12-12', '%U') AS "%U",
DATE_FORMAT('2024-12-12', '%u') AS "%u",
DATE_FORMAT('2024-12-12', '%V') AS "%V",
DATE_FORMAT('2024-12-12', '%v') AS "%v";
Risultato:
+------+------+------+------+ | %U | %u | %V | %v | +------+------+------+------+ | 49 | 50 | 49 | 50 | +------+------+------+------+
Come puoi vedere, restituire il numero della settimana non è sempre così chiaro come potremmo desiderare.
Consulta le stringhe di formato MariaDB per un elenco completo di stringhe di formato/specificatori che possono essere utilizzati con DATE_FORMAT()
.
Il YEARWEEK()
Funzione
È possibile ottenere la settimana e anno in una volta. 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 | +------------------------+
Come con la WEEK()
funzione, 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.