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

Come funziona DAYNAME() in MariaDB

In MariaDB, DAYNAME() è una funzione di data e ora incorporata che restituisce il nome del giorno della settimana per una determinata data.

Accetta un argomento, che è la data da cui vuoi estrarre il nome del giorno.

Sintassi

La sintassi è questa:

DAYNAME(date)

Dove date è la data da cui ottenere il nome del giorno.

Esempio

Ecco un esempio:

SELECT DAYNAME('2045-10-17');

Risultato:

+-----------------------+
| DAYNAME('2045-10-17') |
+-----------------------+
| Tuesday               |
+-----------------------+

Lingua

La lingua utilizzata per il nome del giorno è controllata dal valore di lc_time_names variabile di sistema.

Ecco un esempio che mostra come ciò influisca sul risultato:

SET lc_time_names = 'de_DE';
SELECT DAYNAME('2045-10-17');

Risultato:

+-----------------------+
| DAYNAME('2045-10-17') |
+-----------------------+
| Dienstag              |
+-----------------------+

E torniamo a en_US , che è l'impostazione predefinita:

SET lc_time_names = 'en_US';
SELECT DAYNAME('2045-10-17');

Risultato:

+-----------------------+
| DAYNAME('2045-10-17') |
+-----------------------+
| Tuesday               |
+-----------------------+

Ecco un elenco di locali supportati da MariaDB, ed ecco come restituire il tuo elenco di locali disponibili.

Già che ci siamo, ecco un post che spiega come controllare il valore dei tuoi lc_time_names variabile di sistema.

Valori di data e ora

Funziona anche con i valori datetime:

SELECT DAYNAME('2030-01-25 10:30:45');

Risultato:

+--------------------------------+
| DAYNAME('2030-01-25 10:30:45') |
+--------------------------------+
| Friday                         |
+--------------------------------+

Zero giorni

Avere un giorno zero nella data restituisce null :

SELECT DAYNAME('2030-00-00');

Risultato:

+-----------------------+
| DAYNAME('2030-00-00') |
+-----------------------+
| NULL                  |
+-----------------------+

Date numeriche

È anche possibile trasmettere le date come numero, purché abbia senso come data.

Esempio

SELECT DAYNAME(20201108);

Risultato:

+-------------------+
| DAYNAME(20201108) |
+-------------------+
| Sunday            |
+-------------------+

Gli anni a due cifre vanno bene:

SELECT DAYNAME(201108);

Risultato:

+-----------------+
| DAYNAME(201108) |
+-----------------+
| Sunday          |
+-----------------+

Ma deve avere un senso come appuntamento. Ecco cosa succede se aumento la parte del mese a un mese non valido:

SELECT DAYNAME(209908);

Risultato:

+-----------------+
| DAYNAME(209908) |
+-----------------+
| 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 
    DAYNAME('2027/08/19'),
    DAYNAME('2027,08,19'),
    DAYNAME('2027:08:19'),
    DAYNAME('2027;08!19');

Risultato (usando l'output verticale):

DAYNAME('2027/08/19'): Thursday
DAYNAME('2027,08,19'): Thursday
DAYNAME('2027:08:19'): Thursday
DAYNAME('2027;08!19'): Thursday

Data attuale

Possiamo passare NOW() come argomento data per utilizzare la data corrente:

SELECT 
    NOW(),
    DAYNAME(NOW());

Risultato:

+---------------------+----------------+
| NOW()               | DAYNAME(NOW()) |
+---------------------+----------------+
| 2021-05-13 13:29:10 | Thursday       |
+---------------------+----------------+

Argomenti non validi

Quando viene passato un argomento non valido, DAYNAME() restituisce null :

SELECT DAYNAME('Dang!');

Risultato:

+------------------+
| DAYNAME('Dang!') |
+------------------+
| NULL             |
+------------------+

Argomento mancante

Chiamando DAYNAME() con il numero errato di argomenti, o senza passare alcun argomento, si verifica un errore:

SELECT DAYNAME();

Risultato:

ERROR 1582 (42000): Incorrect parameter count in the call to native function 'DAYNAME'

E un altro esempio:

SELECT DAYNAME('2030-01-25', '2045-05-08');

Risultato:

ERROR 1582 (42000): Incorrect parameter count in the call to native function 'DAYNAME'