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

Я храню даты как 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))

Как я прочитал документацию, Функции даты и времени используют подмножество форматов даты и времени IS0-8601.Функция date() возвращает дату в следующем формате: ГГГГ-ММ-ДД.значит, я правильно делаю - создаю дату из сохраненной строки и сравниваю ее с датой, созданной из другой строки.

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

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

и это (использовать между вместо =)

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

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

17
задан qkx 31 May 2012 в 11:40
поделиться