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

Obtenga el primer lunes del año en SQLite

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