Я знаю, что это сообщение несколько устарело, но я в любом случае публикую сообщения для тех, у кого может быть такая же проблема, как и у меня. Я получал дату из открытого API-интерфейса как «2013-01-01T01: 00: 00 + 0000» и сохранял ее в виде строки в sqlite. Проблема возникла, когда мне понадобился какой-то способ запроса записей на основе диапазона дат. Поскольку я не смог использовать STR_TO_DATE (), я обнаружил, что могу использовать функцию sqlite strftime (). Ниже приведен пример рабочего запроса, который я использую для этого экземпляра, надеюсь, он сможет помочь кому-то еще:
select strftime(date_created) as dateCreated from tblFeeds
where strftime(date_created) between strftime('2013-01-01') and strftime('2013-01-08')
order by dateCreated;
Это дало мне записи, которые были созданы между 01-01-2013 и 01-08-2013 (диапазон дат 7).
Также вот несколько диапазонов дат для вас, если вы не знаете даты, которые хотите использовать:
(последние 24 часа):
select strftime(date_created) as dateCreated from tblFeeds
where strftime(date_created) between strftime(date('now','-24hours')) and strftime(date('now'))
order by dateCreated
(на прошлой неделе):
select strftime(date_created) as dateCreated from tblFeeds
where strftime(date_created) between strftime(date('now','-7days')) and strftime(date('now'))
order by dateCreated
(последний месяц):
select strftime(date_created) as dateCreated from tblFeeds
where strftime(date_created) between strftime(date('now','-1months')) and strftime(date('now'))
order by dateCreated