Сравните даты (хранятся в виде строки) в базе данных Android?

Я храню даты какString в моей базе данных, в этом формате:

YYYY-MM-DD HH:MM:SS

который является одним из поддерживаемых форматов (http://www.sqlite.org/lang_datefunc.html). Теперь я хочу сравнить эти сохраненные даты (ну, строки) с другими датами. Мои даты хранятся в столбцеcolumn_dateтак что я пытаюсь это:

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

Когда я читаю документацию,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. поэтому я полагаю, что делаю все правильно - я создаю дату из сохраненной строки и сравниваю ее с датой, созданной из другой строки.

Но это не работает, даже когдаcolumn_date дата этого года, и, как вы можете видеть, даты начала и окончания очень благосклонны. Попробовал также это (использовал datetime вместо date):

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

и это (используйте между вместо & lt; = и & gt; =)

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

и все другие возможные комбинации. Что, черт возьми, я делаю неправильно, я тупой, или документальная ложь, или я пропустил что-то очень важное? Пытаюсь найти решение несколько часов, но ничего не получается ...

Ответы на вопрос(5)

Ваш ответ на вопрос