In MariaDB, DAY() è sinonimo di DAYOFMONTH() . Restituisce il giorno del mese da una determinata data.
Accetta un argomento, che è la data da cui vuoi restituire il giorno del mese.
Il risultato è nell'intervallo 1 a 31 . Tuttavia, se la data ha una parte zero giorni (ad esempio '0000-00-00' o '2021-00-00' ), il risultato è 0 .
Sintassi
La sintassi è questa:
DAY(date)
Dove date è la data da cui estrarre il giorno.
Esempio
Ecco un esempio:
SELECT DAY('2045-05-18'); Risultato:
+-------------------+
| DAY('2045-05-18') |
+-------------------+
| 18 |
+-------------------+ Valori di data e ora
Funziona anche con i valori datetime:
SELECT DAY('2045-05-18 01:10:15'); Risultato:
+----------------------------+
| DAY('2045-05-18 01:10:15') |
+----------------------------+
| 18 |
+----------------------------+ Zero giorni
Ecco un esempio che utilizza un giorno zero nella data:
SELECT DAY('0000-00-00'); Risultato:
+-------------------+
| DAY('0000-00-00') |
+-------------------+
| 0 |
+-------------------+ Date numeriche
È anche possibile trasmettere le date come numero, purché abbia senso come data.
Esempio
SELECT DAY(20220308); Risultato:
+---------------+ | DAY(20220308) | +---------------+ | 8 | +---------------+
O anche il seguente (che utilizza un anno a due cifre):
SELECT DAY(220308); Risultato:
+-------------+ | DAY(220308) | +-------------+ | 8 | +-------------+
Ma deve avere un senso come appuntamento. Ecco cosa succede se aumento la parte del giorno a un giorno non valido:
SELECT DAY(220358); Risultato:
+-------------+ | DAY(220358) | +-------------+ | 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
DAY('2028/12/30'),
DAY('2028,12,30'),
DAY('2028:12:30'),
DAY('2028;12!30'); Risultato (usando l'output verticale):
DAY('2028/12/30'): 30
DAY('2028,12,30'): 30
DAY('2028:12:30'): 30
DAY('2028;12!30'): 30 Data attuale
Possiamo passare NOW() come argomento data per utilizzare la data corrente:
SELECT
NOW(),
DAY(NOW()); Risultato:
+---------------------+------------+ | NOW() | DAY(NOW()) | +---------------------+------------+ | 2021-05-13 09:41:03 | 13 | +---------------------+------------+
Argomenti non validi
Quando viene passato un argomento non valido, DAY() restituisce null :
SELECT DAY('Oops!'); Risultato:
+--------------+
| DAY('Oops!') |
+--------------+
| NULL |
+--------------+ Argomento mancante
Chiamando DAY() con il numero errato di argomenti, o senza passare alcun argomento, genera un errore:
SELECT DAY(); Risultato:
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near ')' at line 1
E un altro esempio:
SELECT DAY('2030-01-25', '2045-05-08'); Risultato:
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near ' '2045-05-08')' at line 1