sql >> Database >  >> RDS >> Mysql

Hoe u de laatste dag van de maand in MySQL kunt krijgen

We kunnen MySQL's LAST_DAY() . gebruiken functie om de laatste dag van een bepaalde maand terug te geven.

Dit kan de laatste dag van de huidige maand zijn, of de laatste dag van de maand op basis van een datum die we specificeren.

Voorbeeld

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

Resultaat:

2030-04-30

In dit geval heeft de opgegeven maand (mei) 30 dagen, en dus krijgen we de 30e van die maand.

Hier is het met de verschillende maanden van het jaar:

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";

Resultaat:

+------------+------------+------------+------------+------------+------------+------------+------------+------------+------------+------------+------------+
| 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 |
+------------+------------+------------+------------+------------+------------+------------+------------+------------+------------+------------+------------+

Databasevoorbeeld

Hier is een voorbeeld dat datums uit een database gebruikt:

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;

Resultaat:

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

In dit geval heb ik ook de CAST() . gebruikt functie om de datetime . te casten waarde naar een date waarde.


  1. Array van ints doorgeven aan T-SQL opgeslagen proc via entiteitsframework

  2. Tupels gebruiken in de SQL IN-clausule

  3. Hoe krijg ik de primaire sleutel(s) van een tabel van Postgres via plpgsql?

  4. Verschil tussen SQL en NoSQL