Podemos usar o
DATE()
do SQLite função para retornar a data da primeira instância de um determinado dia de um determinado ano. Portanto, podemos usá-lo para retornar a primeira segunda-feira de um determinado ano. Também podemos usá-lo para retornar a primeira terça, quarta, quinta, sexta, etc. Podemos usar
DATETIME()
se quisermos que um valor de data e hora seja retornado. Exemplo
SELECT DATE('2025-10-20', 'start of year', 'weekday 1');
Resultado:
2025-01-06
Nesse caso, a primeira segunda-feira de um determinado ano ocorre em 2025-01-06.
O
start of year
e weekday 1
modificadores modificam a data fornecida no primeiro argumento. Domingo é 0, segunda-feira é 1, terça-feira é 2 e assim por diante. Portanto, usamos um valor de weekday 1
para selecionar segunda-feira. Primeira segunda-feira do ano atual
Aqui está um exemplo que percorre o processo usando a data atual:
SELECT
DATE('now') AS "Now",
DATE('now', 'start of year') AS "Start of Year",
DATE('now', 'start of year', 'weekday 1') AS "First Monday";
Resultado:
Now Start of Year First Monday ---------- ------------- ------------ 2022-03-09 2022-01-01 2022-01-03
Este exemplo nos mostra a data em cada estágio de sua modificação. Usamos
now
para retornar a data atual, então start of year
para movê-lo de volta para o início do ano, então weekday 1
para avançar a data para a primeira segunda-feira. O DATETIME()
Função
Também podemos usar o
DATETIME()
função para fazer a mesma coisa. A diferença é que inclui a parte do tempo:SELECT DATETIME('2025-10-20', 'start of year', 'weekday 1');
Resultado:
2025-01-06 00:00:00