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

Come funziona WEEKDAY() in MariaDB

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'