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

Obtenha a primeira segunda-feira de um mês no SQLite


DATE() do SQLite A função nos fornece a capacidade de retornar a data da primeira instância de um determinado dia de um determinado mês. Portanto, podemos usá-lo para retornar a primeira segunda-feira de um determinado mês. 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 month', 'weekday 1');

Resultado:
2025-10-06

Nesse caso, a primeira segunda-feira de um determinado mês ocorre em 2025-10-06.

O start of month 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 mês atual


Este exemplo percorre o processo usando a data atual:
SELECT 
    DATE('now') AS "Now",
    DATE('now', 'start of month') AS "Start of Month",
    DATE('now', 'start of month', 'weekday 1') AS "First Monday";

Resultado:
Now         Start of Month  First Monday
----------  --------------  ------------
2022-03-09  2022-03-01      2022-03-07  

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 month para movê-lo de volta para o início do mês, 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 month', 'weekday 1');

Resultado:
2025-10-06 00:00:00