Podemos usar DATE()
de SQLite función para devolver la fecha de la primera instancia de un día determinado de un año determinado. Por lo tanto, podemos usarlo para devolver el primer lunes de un año 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 year', 'weekday 1');
Resultado:
2025-01-06
En este caso, el primer lunes del año dado ocurre el 2025-01-06.
El start of year
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 año en curso
Aquí hay un ejemplo que recorre el proceso usando la fecha actual:
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 ejemplo nos muestra la fecha en cada etapa de su modificación. Usamos now
para devolver la fecha actual, luego start of year
para volver al comienzo del año, 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 year', 'weekday 1');
Resultado:
2025-01-06 00:00:00