sql >> Database teknologi >  >> RDS >> SQLite

Returner slutningen af ​​måneden i SQLite

I SQLite kan vi bruge følgende metode til at beregne den sidste dag i en given måned.

Vi kan basere dette enten på den aktuelle dato eller på en anden specifik dato.

Sidste dag i den aktuelle måned

Her er et eksempel, der returnerer den sidste dag i den aktuelle måned:

SELECT DATE('now', 'start of month', '+1 month', '-1 day');

Resultat:

2022-03-31

Dette bruger DATE() funktion for at returnere de resultater, vi ønsker. 'now' argument returnerer den aktuelle dato og 'start of month' argument ændrer det til begyndelsen af ​​måneden. Vi bruger derefter '+1 month' for at tilføje en måned til månedens begyndelse (hvilket ville flytte den frem til begyndelsen af ​​den følgende måned), så reducerer vi denne dato med en dag (for at bringe den tilbage til slutningen af ​​den første måned).

Sidste dag i en specificeret måned

Men som nævnt er vi ikke begrænset til kun slutningen af ​​den aktuelle måned. Vi kan angive en hvilken som helst dato, og den returnerer slutningen af ​​måneden, baseret på den dato.

Her er nogle eksempler:

SELECT 
    DATE('2023-02-10', 'start of month', '+1 month', '-1 day') AS Feb,
    DATE('2023-11-10', 'start of month', '+1 month', '-1 day') AS Nov,
    DATE('2023-12-10', 'start of month', '+1 month', '-1 day') AS Dec;

Resultat:

Feb         Nov         Dec       
----------  ----------  ----------
2023-02-28  2023-11-30  2023-12-31

Vi kan se, at SQLite er smart nok til at regne ud, hvor mange dage der er i hver måned. Når vi bruger '+1 month' , SQLite ved, hvor mange dage der er i hver måned. Vi kan se, at februar har 28 dage, 30. november, og december har 31.

Hvis vi flytter den oprindelige dato frem til 2024, kan vi se, at februar har 29 dage i det år:

SELECT 
    DATE('2024-02-10', 'start of month', '+1 month', '-1 day') AS Feb,
    DATE('2024-11-10', 'start of month', '+1 month', '-1 day') AS Nov,
    DATE('2024-12-10', 'start of month', '+1 month', '-1 day') AS Dec;

Resultat:

Feb         Nov         Dec       
----------  ----------  ----------
2024-02-29  2024-11-30  2024-12-31

  1. Hvordan indstiller man en maksimal udførelsestid for en mysql-forespørgsel?

  2. dødvande i Oracle

  3. Hvordan forvandler man 2 forespørgsler med fælles kolonner (A, B) og (A, C) til kun én (A, B, C)?

  4. Hvordan ændres tabelstrukturen i Oracle?