Porównaj daty (zapisane jako ciąg) w bazie danych SQL sqlite?

Przechowuję daty jakoString w mojej bazie danych w tym formacie:

YYYY-MM-DD HH:MM:SS

który jest jednym z obsługiwanych formatów (http://www.sqlite.org/lang_datefunc.html). Teraz chcę porównać te zapisane daty (dobrze, ciągi) z innymi datami. Moje daty są przechowywane w kolumniecolumn_date, więc próbuję tego:

SELECT  * FROM MyTable
WHERE 
(Date(column_date) >= Date (2000-01-01) AND Datetime(column_date) <= Datetime (2050-01-01))

Jak czytam dokumentację,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. więc przypuszczam, że robię to dobrze - tworzę datę z przechowywanego ciągu i porównuję ją z datą utworzoną z innych ciągów.

Ale to nie działa, nawet gdycolumn_date jest datą z tego roku, a jak widać, daty rozpoczęcia i zakończenia są bardzo życzliwe. Próbowałem również to (używana data / godzina zamiast daty):

SELECT  * FROM MyTable
    WHERE 
    (datetime(column_date) >= Date (2000-01-01) AND datetime(column_date) <= Datetime (2050-01-01))

i to (użyj pomiędzy zamiast <= i> =)

SELECT  * FROM MyTable
    WHERE 
    (Date(column_date) between Date (2000-01-01) AND Datetime (2050-01-01))

i wszystkie inne możliwe kombinacje. Co, do diabła, robię źle, czy jestem głupi, czy dokumentacja kłamie, czy przegapiłem coś bardzo ważnego? Próbuję znaleźć rozwiązanie na kilka godzin, ale nic nie działa ...

questionAnswers(5)

yourAnswerToTheQuestion