sql >> Base de Datos >  >> RDS >> SQLite

Obtenga el primer lunes de un mes en SQLite

DATE() de SQLite La función nos brinda la capacidad de devolver la fecha de la primera instancia de un día determinado de un mes determinado. Por lo tanto, podemos usarlo para devolver el primer lunes de un mes determinado. También podemos usarlo para volver el primer martes, miércoles, jueves, viernes, etc.

Podemos usar DATETIME() si queremos que se devuelva un valor de fecha y hora.

Ejemplo

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

Resultado:

2025-10-06

En este caso, el primer lunes del mes dado ocurre el 2025-10-06.

El start of month y weekday 1 Los modificadores modifican la fecha dada en el primer argumento. El domingo es 0, el lunes es 1, el martes es 2, y así sucesivamente. Por lo tanto, usamos un valor de weekday 1 para seleccionar el lunes.

Primer lunes del mes actual

Este ejemplo recorre el proceso utilizando la fecha actual:

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 ejemplo nos muestra la fecha en cada etapa de su modificación. Usamos now para devolver la fecha actual, luego start of month para volver a moverlo al comienzo del mes, luego weekday 1 para adelantar la fecha al primer lunes.

El DATETIME() Función

También podemos usar el DATETIME() función para hacer lo mismo. La diferencia es que incluye la porción de tiempo:

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

Resultado:

2025-10-06 00:00:00