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'