In MariaDB, WEEKDAY() è una funzione di data e ora incorporata che restituisce il giorno della settimana da una determinata data.
Accetta un argomento, che è la data da cui vuoi estrarre il giorno della settimana.
Restituisce il giorno come numero. La numerazione dell'indice inizia da zero per lunedì (cioè 0 =lunedì, 1 =martedì, ecc.). Questo è in contrasto con DAYOFWEEK() , che aderisce allo standard ODBC (1 =domenica, 2 =lunedì, ecc.).
Sintassi
La sintassi è questa:
WEEKDAY(date)
Dove date è la data da cui ottenere il giorno della settimana.
Esempio
Ecco un esempio:
SELECT WEEKDAY('2030-01-25'); Risultato:
+-----------------------+
| WEEKDAY('2030-01-25') |
+-----------------------+
| 4 |
+-----------------------+ Rispetto al nome del giorno
Eccone un altro, insieme a DAYNAME() per restituire il nome del giorno:
SELECT
WEEKDAY('2030-01-21'),
DAYNAME('2030-01-21'); Risultato:
+-----------------------+-----------------------+
| WEEKDAY('2030-01-21') | DAYNAME('2030-01-21') |
+-----------------------+-----------------------+
| 0 | Monday |
+-----------------------+-----------------------+ Come accennato, la numerazione dell'indice inizia da 0 per lunedì.
Ecco domenica:
SELECT
WEEKDAY('2030-01-20'),
DAYNAME('2030-01-20'); Risultato:
+-----------------------+-----------------------+
| WEEKDAY('2030-01-20') | DAYNAME('2030-01-20') |
+-----------------------+-----------------------+
| 6 | Sunday |
+-----------------------+-----------------------+ Valori di data e ora
Funziona anche con i valori datetime:
SELECT WEEKDAY('2030-01-24 10:30:45'); Risultato:
+--------------------------------+
| WEEKDAY('2030-01-24 10:30:45') |
+--------------------------------+
| 3 |
+--------------------------------+ Zero giorni
Zero giorni risultano null .
Esempio:
SELECT WEEKDAY('2030-00-00'); Risultato:
+-----------------------+
| WEEKDAY('2030-00-00') |
+-----------------------+
| NULL |
+-----------------------+ Date numeriche
È anche possibile trasmettere le date come numero, purché abbia senso come data.
Esempio
SELECT WEEKDAY(20300125); Risultato:
+-------------------+ | WEEKDAY(20300125) | +-------------------+ | 4 | +-------------------+
O anche il seguente (che utilizza un anno a due cifre):
SELECT WEEKDAY(300125); Risultato:
+-----------------+ | WEEKDAY(300125) | +-----------------+ | 4 | +-----------------+
Ma deve avere un senso come appuntamento. Ecco cosa succede se aumento la parte del giorno a un giorno non valido:
SELECT WEEKDAY(20300135); Risultato:
+-------------------+ | WEEKDAY(20300135) | +-------------------+ | NULL | +-------------------+
Altri delimitatori
È possibile utilizzare altri delimitatori per la data. MariaDB è abbastanza clemente quando si tratta di delimitatori sulle date. Ecco alcuni validi esempi:
SELECT
WEEKDAY('2030/01/25'),
WEEKDAY('2030,01,25'),
WEEKDAY('2030:01:25'),
WEEKDAY('2030;01!25'); Risultato (usando l'output verticale):
WEEKDAY('2030/01/25'): 4
WEEKDAY('2030,01,25'): 4
WEEKDAY('2030:01:25'): 4
WEEKDAY('2030;01!25'): 4 Data attuale
Possiamo passare NOW() come argomento data per utilizzare la data corrente:
SELECT
NOW(),
WEEKDAY(NOW()); Risultato:
+---------------------+----------------+ | NOW() | WEEKDAY(NOW()) | +---------------------+----------------+ | 2021-05-15 09:44:50 | 5 | +---------------------+----------------+
Argomenti non validi
Quando viene passato un argomento non valido, WEEKDAY() restituisce null :
SELECT WEEKDAY('Homer'); Risultato:
+------------------+
| WEEKDAY('Homer') |
+------------------+
| NULL |
+------------------+ Argomento mancante
Chiamando WEEKDAY() con il numero errato di argomenti, o senza passare alcun argomento, si verifica un errore:
SELECT WEEKDAY(); Risultato:
ERROR 1582 (42000): Incorrect parameter count in the call to native function 'WEEKDAY'
E un altro esempio:
SELECT WEEKDAY('2030-01-25', '2045-05-08'); Risultato:
ERROR 1582 (42000): Incorrect parameter count in the call to native function 'WEEKDAY'