sql >> Database >  >> RDS >> Mysql

Hoe u de laatste dag van de maand voor een bepaalde datum kunt vinden in MySQL

Probleem:

U wilt de datum van de laatste dag van de maand voor een datum in een MySQL-database.

Voorbeeld:

Onze database heeft een tabel met de naam car_sales met gegevens in de kolommen id , make , model , en sale_date .

id maak model sale_date
1 Ford Ka 2019-02-01
2 Toyota Yaris 2019-08-15
3 Opel Corsa 2019-06-22

Laten we voor elke auto het merk en model krijgen en de laatste dag van de maand waarin de auto is verkocht. (De laatste dag van de maand is een van de voorwaarden van de transactievereffening.)

Oplossing:

We gebruiken de LAST_DAY() functie. Dit is de vraag die je zou schrijven:

SELECT make,
       model,
       LAST_DAY(sale_date) 
         AS  sale_last_day
FROM car_sales;

Dit is het resultaat van de zoekopdracht:

maken model sale_last_day
Ford Ka 28-02-2019
Toyota Yaris 31-08-2019
Opel Corsa 2019-06-30

Discussie:

Gebruik de functie LAST_DAY() als u de laatste dag van de maand voor een datum in MySQL wilt ophalen. Deze functie heeft één argument nodig:de datum, ofwel als een expressie die een datum/datum/tijdstempelwaarde retourneert, ofwel de naam van een datum/datum/tijdstempelkolom. In ons voorbeeld gebruiken we de sale_date kolom. Het is van de datum gegevenstype.

LAST_DATE() retourneert de laatste dag van de maand van een bepaalde datum. In ons voorbeeld, de laatste dag van de maand waarop de Ford Ka werd verkocht is ‘2019-02-28’; de auto verkocht op '2019-02-01', en de laatste dag van februari 2019 was '2019-02-28'.


  1. Prestatieverrassingen en veronderstellingen:STEL NOCOUNT IN OP

  2. hoe dbms_scheduler te gebruiken om de taak elke 30 minuten uit te voeren

  3. Null-waarden vergelijken in MySQL

  4. Ik moet kolomnamen doorgeven met behulp van variabele in select-instructie in Store Procedure, maar ik kan geen dynamische query gebruiken