SQLite
 sql >> Base de Dados >  >> RDS >> SQLite

Obtenha a primeira segunda-feira de um ano em SQLite


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