Mysql
 sql >> Base de données >  >> RDS >> Mysql

Comment obtenir le dernier jour du mois dans MySQL

Nous pouvons utiliser le LAST_DAY() de MySQL fonction pour renvoyer le dernier jour d'un mois donné.

Il peut s'agir du dernier jour du mois en cours ou du dernier jour du mois en fonction d'une date que nous spécifions.

Exemple

SELECT LAST_DAY('2030-04-15');

Résultat :

2030-04-30

Dans ce cas, le mois spécifié (mai) a 30 jours, et nous obtenons donc le 30 de ce mois.

La voici avec les différents mois de l'année :

SELECT 
    LAST_DAY('2030-01-15') AS "Jan",
    LAST_DAY('2030-02-15') AS "Feb",
    LAST_DAY('2030-03-15') AS "Mar",
    LAST_DAY('2030-04-15') AS "Apr",
    LAST_DAY('2030-05-15') AS "May",
    LAST_DAY('2030-06-15') AS "Jun",
    LAST_DAY('2030-07-15') AS "Jul",
    LAST_DAY('2030-08-15') AS "Aug",
    LAST_DAY('2030-09-15') AS "Sep",
    LAST_DAY('2030-10-15') AS "Oct",
    LAST_DAY('2030-11-15') AS "Nov",
    LAST_DAY('2030-12-15') AS "Dec";

Résultat :

+------------+------------+------------+------------+------------+------------+------------+------------+------------+------------+------------+------------+
| Jan        | Feb        | Mar        | Apr        | May        | Jun        | Jul        | Aug        | Sep        | Oct        | Nov        | Dec        |
+------------+------------+------------+------------+------------+------------+------------+------------+------------+------------+------------+------------+
| 2030-01-31 | 2030-02-28 | 2030-03-31 | 2030-04-30 | 2030-05-31 | 2030-06-30 | 2030-07-31 | 2030-08-31 | 2030-09-30 | 2030-10-31 | 2030-11-30 | 2030-12-31 |
+------------+------------+------------+------------+------------+------------+------------+------------+------------+------------+------------+------------+

Exemple de base de données

Voici un exemple qui utilise des dates d'une base de données :

CREATE TABLE employees (
  empId INTEGER PRIMARY KEY,
  name TEXT NOT NULL,
  start_date DATE NOT NULL
);

INSERT INTO employees VALUES (0001, 'Rohit', '2020-02-15');
INSERT INTO employees VALUES (0002, 'Zohan', '2017-08-09');
INSERT INTO employees VALUES (0003, 'Jen', '2010-09-03');
INSERT INTO employees VALUES (0004, 'Eve', '2011-10-24');
INSERT INTO employees VALUES (0005, 'Ryan', '2021-11-08');

SELECT 
  start_date,
  CAST(LAST_DAY(start_date) AS DATE) AS "End of Month"
FROM employees;

Résultat :

start_date	End of Month
2020-02-15	2020-02-29
2017-08-09	2017-08-31
2010-09-03	2010-09-30
2011-10-24	2011-10-31
2021-11-08	2021-11-30

Dans ce cas, j'ai également utilisé le CAST() fonction pour caster le datetime valeur à une date valeur.