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

Spiegazione di MariaDB DAY()

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