Сравните даты (хранятся в виде строки) в базе данных 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))
и все другие возможные комбинации. Что, черт возьми, я делаю неправильно, я тупой, или документальная ложь, или я пропустил что-то очень важное? Пытаюсь найти решение несколько часов, но ничего не получается ...