sql >> Databasteknik >  >> RDS >> MariaDB

Hur man får slutet av månaden i MariaDB

I MariaDB kan vi använda LAST_DAY() funktion för att returnera den sista dagen i en given månad.

Detta kan vara den sista dagen i den aktuella månaden eller den sista dagen i månaden baserat på ett datum som vi anger.

Exempel

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

Resultat:

2030-07-31

I det här fallet har den angivna månaden (juli) 31 dagar, så vi får den 31:a i den månaden.

Här är den med årets olika månader:

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

Resultat:

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

Databasexempel

Här är ett exempel som använder datum från en databas:

SELECT 
    rental_date, 
    CAST(LAST_DAY(rental_date) AS DATE) AS "End of Month"
FROM rental WHERE customer_id = 459 
LIMIT 10;

Resultat:

+---------------------+--------------+
| rental_date         | End of Month |
+---------------------+--------------+
| 2005-05-24 22:54:33 | 2005-05-31   |
| 2005-06-17 02:50:51 | 2005-06-30   |
| 2005-06-17 09:38:22 | 2005-06-30   |
| 2005-06-17 16:40:33 | 2005-06-30   |
| 2005-06-20 02:39:21 | 2005-06-30   |
| 2005-06-20 12:35:44 | 2005-06-30   |
| 2005-06-20 12:42:00 | 2005-06-30   |
| 2005-06-21 02:39:44 | 2005-06-30   |
| 2005-07-06 00:22:29 | 2005-07-31   |
| 2005-07-08 02:51:23 | 2005-07-31   |
+---------------------+--------------+

I det här fallet använde jag också CAST() funktion för att casta datetime värde till ett date värde.


  1. Varför frågan inte sparas i csv-fil medan det verkar normalt i postgresql-konsolen

  2. Visa SQLite-data i RecyclerView

  3. Inget stöd för OVER i MS SQL Server 2005?

  4. Oracle-tabell dynamisk partition