Quando usi MySQL, puoi usare LAST_DAY() funzione per restituire l'ultimo giorno di un determinato mese.
Puoi fornire la data corrente, oppure puoi fornire un'altra data specificata (ad esempio, una data da una colonna in un database) e LAST_DAY() restituirà l'ultimo giorno del mese per quella data.
Sintassi
La sintassi è questa:
LAST_DAY(date)
Dove date è la data per la quale desideri che venga restituito l'ultimo giorno.
Esempio 1 – Utilizzo di base
Ecco un esempio per dimostrare come funziona.
SELECT LAST_DAY('2021-01-01');
Risultato:
+------------------------+
| LAST_DAY('2021-01-01') |
+------------------------+
| 2021-01-31 |
+------------------------+
Quindi prende la data che forniamo come argomento e quindi restituisce l'ultimo giorno di quel mese.
Esempio 2 – Anni bisestili
Come ci si potrebbe aspettare, è abbastanza intelligente da essere in grado di affrontare gli anni bisestili.
Anno non bisestile
SELECT LAST_DAY('2021-02-01');
Risultato:
+------------------------+
| LAST_DAY('2021-02-01') |
+------------------------+
| 2021-02-28 |
+------------------------+
Anno bisestile
SELECT LAST_DAY('2020-02-01');
Risultato:
+------------------------+
| LAST_DAY('2020-02-01') |
+------------------------+
| 2020-02-29 |
+------------------------+
Esempio 3 – Valori di data e ora
Puoi anche fornire una data e ora valore.
SELECT LAST_DAY('2021-02-01 23:59:15');
Risultato:
+---------------------------------+
| LAST_DAY('2021-02-01 23:59:15') |
+---------------------------------+
| 2021-02-28 |
+---------------------------------+
Esempio 4 – Valori non validi
Se fornisci una data non valida, verrà restituito un valore nullo.
SELECT LAST_DAY('2021-02-32');
Risultato:
+------------------------+
| LAST_DAY('2021-02-32') |
+------------------------+
| NULL |
+------------------------+
1 row in set, 1 warning (0.00 sec)
Esempio 5:un esempio di database
Ecco un esempio di questa funzione utilizzata in una query di database.
USE sakila; SELECT payment_date AS 'Date/Time', LAST_DAY(payment_date) AS 'Last day of month' FROM payment WHERE payment_id = 1;
Risultato:
+---------------------+-------------------+ | Date/Time | Last day of month | +---------------------+-------------------+ | 2005-05-25 11:30:37 | 2005-05-31 | +---------------------+-------------------+