In MariaDB, DAYNAME()
is een ingebouwde datum- en tijdfunctie die de naam van de weekdag voor een bepaalde datum retourneert.
Het accepteert één argument, namelijk de datum waaruit je de dagnaam wilt halen.
Syntaxis
De syntaxis gaat als volgt:
DAYNAME(date)
Waar date
is de datum om de dagnaam van te krijgen.
Voorbeeld
Hier is een voorbeeld:
SELECT DAYNAME('2045-10-17');
Resultaat:
+-----------------------+ | DAYNAME('2045-10-17') | +-----------------------+ | Tuesday | +-----------------------+
Taal
De taal die wordt gebruikt voor de dagnaam wordt bepaald door de waarde van de lc_time_names
systeem variabele.
Hier is een voorbeeld dat laat zien hoe dit het resultaat beïnvloedt:
SET lc_time_names = 'de_DE';
SELECT DAYNAME('2045-10-17');
Resultaat:
+-----------------------+ | DAYNAME('2045-10-17') | +-----------------------+ | Dienstag | +-----------------------+
En terugschakelen naar en_US
, wat de standaard is:
SET lc_time_names = 'en_US';
SELECT DAYNAME('2045-10-17');
Resultaat:
+-----------------------+ | DAYNAME('2045-10-17') | +-----------------------+ | Tuesday | +-----------------------+
Hier is een lijst met landinstellingen die door MariaDB worden ondersteund, en hier leest u hoe u uw eigen lijst met beschikbare landinstellingen kunt retourneren.
Nu we toch bezig zijn, hier is een bericht waarin wordt uitgelegd hoe u de waarde van uw lc_time_names
kunt controleren systeemvariabele.
Datum/tijd-waarden
Het werkt ook met datetime-waarden:
SELECT DAYNAME('2030-01-25 10:30:45');
Resultaat:
+--------------------------------+ | DAYNAME('2030-01-25 10:30:45') | +--------------------------------+ | Friday | +--------------------------------+
Nul dagen
Een nuldag in de datum retourneert null
:
SELECT DAYNAME('2030-00-00');
Resultaat:
+-----------------------+ | DAYNAME('2030-00-00') | +-----------------------+ | NULL | +-----------------------+
Numerieke datums
Het is ook mogelijk om datums als een getal door te geven, zolang het maar logisch is als een datum.
Voorbeeld
SELECT DAYNAME(20201108);
Resultaat:
+-------------------+ | DAYNAME(20201108) | +-------------------+ | Sunday | +-------------------+
Jaartallen van twee cijfers zijn prima:
SELECT DAYNAME(201108);
Resultaat:
+-----------------+ | DAYNAME(201108) | +-----------------+ | Sunday | +-----------------+
Maar het moet logisch zijn als een date. Dit gebeurt er als ik het maandgedeelte verhoog naar een ongeldige maand:
SELECT DAYNAME(209908);
Resultaat:
+-----------------+ | DAYNAME(209908) | +-----------------+ | NULL | +-----------------+
Andere scheidingstekens
U kunt andere scheidingstekens voor de datum gebruiken. MariaDB is behoorlijk vergevingsgezind als het gaat om scheidingstekens op datums. Hier zijn enkele geldige voorbeelden:
SELECT
DAYNAME('2027/08/19'),
DAYNAME('2027,08,19'),
DAYNAME('2027:08:19'),
DAYNAME('2027;08!19');
Resultaat (met verticale uitvoer):
DAYNAME('2027/08/19'): Thursday DAYNAME('2027,08,19'): Thursday DAYNAME('2027:08:19'): Thursday DAYNAME('2027;08!19'): Thursday
Huidige datum
We kunnen NOW()
doorgeven als het datumargument om de huidige datum te gebruiken:
SELECT
NOW(),
DAYNAME(NOW());
Resultaat:
+---------------------+----------------+ | NOW() | DAYNAME(NOW()) | +---------------------+----------------+ | 2021-05-13 13:29:10 | Thursday | +---------------------+----------------+
Ongeldige argumenten
Wanneer een ongeldig argument wordt doorgegeven, DAYNAME()
retourneert null
:
SELECT DAYNAME('Dang!');
Resultaat:
+------------------+ | DAYNAME('Dang!') | +------------------+ | NULL | +------------------+
Ontbrekend argument
Bellen DAYNAME()
met het verkeerde aantal argumenten, of zonder het doorgeven van argumenten, resulteert in een fout:
SELECT DAYNAME();
Resultaat:
ERROR 1582 (42000): Incorrect parameter count in the call to native function 'DAYNAME'
En nog een voorbeeld:
SELECT DAYNAME('2030-01-25', '2045-05-08');
Resultaat:
ERROR 1582 (42000): Incorrect parameter count in the call to native function 'DAYNAME'