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

Come funziona MONTH() in MariaDB

In MariaDB, MONTH() è una funzione di data e ora incorporata che restituisce il mese da una determinata espressione di data.

Accetta un argomento, che è la data da cui vuoi estrarre il mese.

Restituisce il mese come numero nell'intervallo 1 a 12 da gennaio a dicembre. Se la data è composta da zero mesi (es. 0000-00-00 o 2025-00-00 ), il risultato è 0 .

Sintassi

La sintassi è questa:

MONTH(date)

Dove date è l'espressione di data da cui ottenere il mese.

Esempio

Ecco un esempio:

SELECT MONTH('2030-08-01');

Risultato:

+---------------------+
| MONTH('2030-08-01') |
+---------------------+
|                   8 |
+---------------------+

Valori di data e ora

Funziona anche con i valori datetime:

SELECT MONTH('2030-08-01 10:30:45');

Risultato:

+------------------------------+
| MONTH('2030-08-01 10:30:45') |
+------------------------------+
|                            8 |
+------------------------------+

Zero mesi

Zero mesi danno come risultato 0 .

Esempio:

SELECT MONTH('2030-00-00');

Risultato:

+---------------------+
| MONTH('2030-00-00') |
+---------------------+
|                   0 |
+---------------------+

Date numeriche

È anche possibile trasmettere le date come numero, purché abbia senso come data.

Esempio

SELECT MONTH(20301125);

Risultato:

+-----------------+
| MONTH(20301125) |
+-----------------+
|              11 |
+-----------------+

O anche il seguente (che utilizza un anno a due cifre):

SELECT MONTH(301125);

Risultato:

+---------------+
| MONTH(301125) |
+---------------+
|            11 |
+---------------+

Ma deve avere un senso come appuntamento. Ecco cosa succede se aumento la parte del giorno a un giorno non valido:

SELECT MONTH(20301135);

Risultato:

+-----------------+
| MONTH(20301135) |
+-----------------+
|            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 
    MONTH('2030/06/25'),
    MONTH('2030,06,25'),
    MONTH('2030:06:25'),
    MONTH('2030;06!25');

Risultato (usando l'output verticale):

MONTH('2030/06/25'): 6
MONTH('2030,06,25'): 6
MONTH('2030:06:25'): 6
MONTH('2030;06!25'): 6

Data attuale

Possiamo passare NOW() come argomento datetime per utilizzare la data corrente:

SELECT 
    NOW(),
    MONTH(NOW());

Risultato:

+---------------------+--------------+
| NOW()               | MONTH(NOW()) |
+---------------------+--------------+
| 2021-05-16 15:00:06 |            5 |
+---------------------+--------------+

Argomenti non validi

Quando viene passato un argomento non valido, MONTH() restituisce null :

SELECT MONTH('2030-65-78');

Risultato:

+---------------------+
| MONTH('2030-65-78') |
+---------------------+
|                NULL |
+---------------------+

Argomento mancante

Chiamando MONTH() con il numero errato di argomenti, o senza passare alcun argomento, si verifica un errore:

SELECT MONTH();

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 MONTH('2030-12-10', '2031-12-10');

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 ' '2031-12-10')' at line 1