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