Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Jak uzyskać ostatni dzień miesiąca w MySQL?

Możemy użyć funkcji LAST_DAY() MySQL funkcja zwracająca ostatni dzień danego miesiąca.

Może to być ostatni dzień bieżącego miesiąca lub ostatni dzień miesiąca na podstawie określonej przez nas daty.

Przykład

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

Wynik:

2030-04-30

W tym przypadku określony miesiąc (maj) ma 30 dni, więc otrzymujemy 30. dzień tego miesiąca.

Oto z różnymi miesiącami roku:

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

Wynik:

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

Przykład bazy danych

Oto przykład wykorzystujący daty z bazy danych:

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;

Wynik:

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

W tym przypadku użyłem również funkcji CAST() funkcja do rzutowania datetime wartość na date wartość.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. ZNAJDŹ_IN_SET() kontra IN()

  2. Podzapytania z EXISTS vs IN - MySQL

  3. MySQL COUNT DISTINCT

  4. Jak dopasować rozmyty adres e-mail lub telefon przez Elasticsearch?

  5. UTF-8 przez całą drogę