¿Comparar fechas (almacenadas como cadena) en la base de datos sqlite de Android?
Almaceno fechas comoString
en mi base de datos, en este formato:
YYYY-MM-DD HH:MM:SS
que es uno de los formatos soportados (http://www.sqlite.org/lang_datefunc.html). Ahora quiero comparar estas fechas almacenadas (bueno, cadenas) con otras fechas. Mis fechas se almacenan en columnacolumn_date
, así que estoy intentando esto:
SELECT * FROM MyTable
WHERE
(Date(column_date) >= Date (2000-01-01) AND Datetime(column_date) <= Datetime (2050-01-01))
Mientras leo la documentación,The date and time functions use a subset of IS0-8601 date and time formats. The date() function returns the date in this format: YYYY-MM-DD.
así que supongo que lo estoy haciendo bien: creo la fecha a partir de la cadena almacenada y la comparo con la fecha creada a partir de otras cadenas.
Pero no funciona, incluso cuandocolumn_date
Esta fecha es de este año y, como puede ver, las fechas de inicio y finalización son muy benévolas. También probé esto (fecha y hora utilizada en lugar de fecha):
SELECT * FROM MyTable
WHERE
(datetime(column_date) >= Date (2000-01-01) AND datetime(column_date) <= Datetime (2050-01-01))
y esto (usar entre en lugar de <= y> =)
SELECT * FROM MyTable
WHERE
(Date(column_date) between Date (2000-01-01) AND Datetime (2050-01-01))
y todas las demás combinaciones posibles. ¿Qué diablos estoy haciendo mal, soy estúpido, o la documentación miente, o me perdí algo muy importante? Tratando de encontrar solución pocas horas, pero nada funciona ...