sql >> Databasteknik >  >> RDS >> SQLite

Få den första måndagen på ett år i SQLite

Vi kan använda SQLites DATE() funktion för att returnera datumet för den första instansen av en viss dag under ett givet år. Därför kan vi använda den för att återvända den första måndagen ett givet år. Vi kan också använda den för att returnera den första tisdagen, onsdagen, torsdagen, fredagen osv.

Vi kan använda DATETIME() om vi vill att ett datetime-värde ska returneras.

Exempel

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

Resultat:

2025-01-06

I det här fallet inträffar den första måndagen i det angivna året 2025-01-06.

start of year och weekday 1 modifierare ändrar datumet som anges vid det första argumentet. Söndag är 0, måndag är 1, tisdag är 2, och så vidare. Därför använder vi värdet weekday 1 för att välja måndag.

Första måndagen i innevarande år

Här är ett exempel som går igenom processen med det aktuella datumet:

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

Resultat:

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

Det här exemplet visar oss datumet i varje steg av dess ändring. Vi använder now för att returnera det aktuella datumet, sedan start of year för att flytta tillbaka den till början av året, sedan weekday 1 för att flytta fram datumet till första måndagen.

DATETIME() Funktion

Vi kan också använda DATETIME() funktion för att göra samma sak. Skillnaden är att den inkluderar tidsdelen:

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

Resultat:

2025-01-06 00:00:00

  1. Laddar data från en textfil till en tabell i oracle

  2. Utökade evenemang för SSAS

  3. Vad är skillnaden mellan kommaseparerade joins och join on syntax i MySQL?

  4. Skillnad mellan flytande och decimal datatyp