sql >> Database >  >> RDS >> SQLite

Retourneer het einde van de maand in SQLite

In SQLite kunnen we de volgende methode gebruiken om de laatste dag van een bepaalde maand te berekenen.

We kunnen dit baseren op de huidige datum of op een andere specifieke datum.

Laatste dag van de huidige maand

Hier is een voorbeeld dat de laatste dag van de huidige maand retourneert:

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

Resultaat:

2022-03-31

Dit gebruikt de DATE() functie om de gewenste resultaten te retourneren. De 'now' argument retourneert de huidige datum, en de 'start of month' argument wijzigt het naar het begin van de maand. We gebruiken dan '+1 month' om een ​​maand toe te voegen aan het begin van de maand (waardoor het naar het begin van de volgende maand zou verschuiven), dan verminderen we die datum met een dag (om het terug te brengen naar het einde van de eerste maand).

Laatste dag van een bepaalde maand

Maar zoals gezegd, we zijn niet beperkt tot het einde van alleen de huidige maand. We kunnen elke datum specificeren, en het zal het einde van de maand retourneren, gebaseerd op die datum.

Hier zijn enkele voorbeelden:

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;

Resultaat:

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

We kunnen zien dat SQLite slim genoeg is om uit te rekenen hoeveel dagen er in elke maand zitten. Wanneer we '+1 month' gebruiken , SQLite weet hoeveel dagen er in elke maand zitten. We kunnen zien dat februari 28 dagen heeft, 30 november en december 31.

Als we de oorspronkelijke datum vooruitschuiven naar 2024, kunnen we zien dat februari in dat jaar 29 dagen heeft:

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;

Resultaat:

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

  1. Hoe een kolomnaam in SQL te hernoemen?

  2. JSON_OBJECT() Functie in Oracle

  3. Retourneer het partitienummer voor elke rij bij het opvragen van een gepartitioneerde tabel in SQL Server (T-SQL)

  4. Een ORA 028513 DG4ODBC-fout onderzoeken