sql >> Database >  >> RDS >> SQLite

Ontvang de eerste maandag van een jaar in SQLite

We kunnen SQLite's DATE() . gebruiken functie om de datum van de eerste instantie van een bepaalde dag van een bepaald jaar te retourneren. Daarom kunnen we het gebruiken om de eerste maandag van een bepaald jaar terug te keren. We kunnen het ook gebruiken om de eerste dinsdag, woensdag, donderdag, vrijdag, enz. terug te keren.

We kunnen DATETIME() . gebruiken als we willen dat een datetime-waarde wordt geretourneerd.

Voorbeeld

SELECT DATE('2025-10-20', 'start of year', 'weekday 1');

Resultaat:

2025-01-06

In dit geval valt de eerste maandag van het gegeven jaar op 2025-01-06.

De start of year en weekday 1 modifiers wijzigen de datum die bij het eerste argument wordt gegeven. Zondag is 0, maandag is 1, dinsdag is 2, enzovoort. Daarom gebruiken we een waarde van weekday 1 om maandag te selecteren.

Eerste maandag van het huidige jaar

Hier is een voorbeeld dat het proces doorloopt met de huidige datum:

SELECT 
    DATE('now') AS "Now",
    DATE('now', 'start of year') AS "Start of Year",
    DATE('now', 'start of year', 'weekday 1') AS "First Monday";

Resultaat:

Now         Start of Year  First Monday
----------  -------------  ------------
2022-03-09  2022-01-01     2022-01-03  

Dit voorbeeld toont ons de datum in elke fase van de wijziging. We gebruiken now om de huidige datum terug te geven, dan start of year om het terug te zetten naar het begin van het jaar, dan weekday 1 om de datum vooruit te schuiven naar de eerste maandag.

De DATETIME() Functie

We kunnen ook de DATETIME() . gebruiken functie om hetzelfde te doen. Het verschil is dat het het tijdsgedeelte omvat:

SELECT DATETIME('2025-10-20', 'start of year', 'weekday 1');

Resultaat:

2025-01-06 00:00:00

  1. Beperk PostgreSQL-gebruikerstoegang met behulp van schema en weergaven

  2. PostgreSQL's date_trunc in mySQL

  3. Oracle verwijdert geen cursors na het sluiten van de resultatenset

  4. Selecteer alle maanden binnen een bepaalde periode, inclusief die met 0 waarden