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

Obtenha a primeira, segunda, terceira ou quarta segunda-feira de um mês no SQLite


Podemos usar o DATE() do SQLite função para realizar cálculos em uma determinada data. Uma das coisas que podemos fazer é retornar a primeira, segunda, terceira ou quarta instância de um determinado dia em um determinado mês.

Exemplo


Segue um exemplo para demonstrar:
SELECT 
    DATE('2025-10-20', 'start of month', 'weekday 1') AS "First",
    DATE('2025-10-20', 'start of month', '+7 days', 'weekday 1') AS "Second",
    DATE('2025-10-20', 'start of month', '+14 days', 'weekday 1') AS "Third",
    DATE('2025-10-20', 'start of month', '+21 days', 'weekday 1') AS "Fourth",
    DATE('2025-10-20', 'start of month', '+28 days', 'weekday 1') AS "Fifth";

Resultado:
First       Second      Third       Fourth      Fifth     
----------  ----------  ----------  ----------  ----------
2025-10-06  2025-10-13  2025-10-20  2025-10-27  2025-11-03

Neste exemplo, a data de início é a mesma para todas as instâncias, assim como a maioria dos argumentos. A única coisa que muda é o quanto adicionamos no início do mês. Se não adicionarmos nada, podemos retornar na primeira segunda-feira, adicionar 7 dias retorna na segunda segunda-feira e assim por diante.

Aqui, usamos start of month para retornar a data para o primeiro dia do mês. Em seguida, usamos mais modificadores para modificar essa data de acordo.

O weekday 1 modificador move a data para a próxima segunda-feira (domingo é 0, segunda-feira é 1, terça-feira é 2 e assim por diante).

Para obter a segunda segunda-feira, podemos usar +7 days para adiantar a data em uma semana. Para as segundas-feiras subsequentes, adicionamos 7 dias a esse número (+14 days , +21 days , +28 days etc).

Também podemos ver que adicionar 28 dias retorna a primeira segunda-feira do mês seguinte.