Сравнение SQLite DateTime

Я, может казаться, не получаю надежные результаты запроса против sqlite базы данных с помощью строки даты и времени в качестве сравнения как так:

select * 
  from table_1 
 where mydate >= '1/1/2009' and mydate <= '5/5/2009'

как я должен обработать сравнения даты и времени с sqlite?

обновление: полем mydate является Тип данных datetime

Решение:

после функции даты и времени и наличия формата строки как YYYY-MM-DD HH:mm:ss я достиг хороших результатов следующим образом

select * 
  from table_1 
  where mydate >= Datetime('2009-11-13 00:00:00') 
  and mydate <= Datetime('2009-11-15 00:00:00')
112
задан Brad 29 December 2009 в 18:54
поделиться

3 ответа

SQLite не имеет выделенного времени даты типа , но имеет несколько функций времени даты . Следуйте форматам представления строк (на самом деле только форматам 1-10), понятным этим функциям (сохраняя значение в виде строки), и тогда вы сможете их использовать, плюс лексикографическое сравнение на строках будет соответствовать сравнению с датой (если только вы не пытаетесь сравнивать даты со временем или время с датой со временем, что в любом случае не имеет смысла).

В зависимости от того, какой язык вы используете, вы даже можете получить автоматическое преобразование. (Что не относится к сравнениям в SQL операторах, как в примере, но сделает Вашу жизнь проще)

.
56
ответ дан 24 November 2019 в 02:50
поделиться

Вы также можете записать свои собственные пользовательские функции для работы с датами в выбранном Вами формате. SQLite имеет достаточно простой способ написания собственных пользовательских функций. Например, я написал несколько, чтобы добавить временные длительности вместе

.
1
ответ дан 24 November 2019 в 02:50
поделиться

Для решения этой проблемы я храню даты как YYYYMMDD . Таким образом, где мидат >= '20090101' и мидат <= '20050505'

Все время просто работает. Вам может понадобиться только написать парсер для обработки того, как пользователи могут вводить свои даты, чтобы вы могли преобразовать их в YYYYMMDD.

.
96
ответ дан 24 November 2019 в 02:50
поделиться
Другие вопросы по тегам:

Похожие вопросы: