In MariaDB, DAYOFMONTH() è una funzione di data e ora incorporata che restituisce il giorno del mese da una determinata data.
Accetta un argomento, che è la data da cui vuoi estrarre 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:
DAYOFMONTH(date)
Dove date è la data da cui estrarre il giorno.
Esempio
Ecco un esempio:
SELECT DAYOFMONTH('2030-01-25'); Risultato:
+--------------------------+
| DAYOFMONTH('2030-01-25') |
+--------------------------+
| 25 |
+--------------------------+ Valori di data e ora
Funziona anche con i valori datetime:
SELECT DAYOFMONTH('2030-01-25 10:30:45'); Risultato:
+-----------------------------------+
| DAYOFMONTH('2030-01-25 10:30:45') |
+-----------------------------------+
| 25 |
+-----------------------------------+ Zero giorni
Ecco un esempio che utilizza un giorno zero nella data:
SELECT DAYOFMONTH('2030-00-00'); Risultato:
+--------------------------+
| DAYOFMONTH('2030-00-00') |
+--------------------------+
| 0 |
+--------------------------+ Date numeriche
È anche possibile trasmettere le date come numero, purché abbia senso come data.
Esempio
SELECT DAYOFMONTH(20300125); Risultato:
+----------------------+ | DAYOFMONTH(20300125) | +----------------------+ | 25 | +----------------------+
O anche il seguente (che utilizza un anno a due cifre):
SELECT DAYOFMONTH(300125); Risultato:
+--------------------+ | DAYOFMONTH(300125) | +--------------------+ | 25 | +--------------------+
Ma deve avere un senso come appuntamento. Ecco cosa succede se aumento la parte del giorno a un giorno non valido:
SELECT DAYOFMONTH(20300135); Risultato:
+----------------------+ | DAYOFMONTH(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
DAYOFMONTH('2030/01/25'),
DAYOFMONTH('2030,01,25'),
DAYOFMONTH('2030:01:25'),
DAYOFMONTH('2030;01!25'); Risultato (usando l'output verticale):
DAYOFMONTH('2030/01/25'): 25
DAYOFMONTH('2030,01,25'): 25
DAYOFMONTH('2030:01:25'): 25
DAYOFMONTH('2030;01!25'): 25 Data attuale
Possiamo passare NOW() come argomento data per utilizzare la data corrente:
SELECT
NOW(),
DAYOFMONTH(NOW()); Risultato:
+---------------------+-------------------+ | NOW() | DAYOFMONTH(NOW()) | +---------------------+-------------------+ | 2021-05-13 09:02:41 | 13 | +---------------------+-------------------+
Argomenti non validi
Quando viene passato un argomento non valido, DAYOFMONTH() restituisce null :
SELECT DAYOFMONTH('Homer'); Risultato:
+---------------------+
| DAYOFMONTH('Homer') |
+---------------------+
| NULL |
+---------------------+ Argomento mancante
Chiamando DAYOFMONTH() con il numero errato di argomenti, o senza passare alcun argomento, si verifica un errore:
SELECT DAYOFMONTH(); Risultato:
ERROR 1582 (42000): Incorrect parameter count in the call to native function 'DAYOFMONTH'
E un altro esempio:
SELECT DAYOFMONTH('2030-01-25', '2045-05-08'); Risultato:
ERROR 1582 (42000): Incorrect parameter count in the call to native function 'DAYOFMONTH'