Во-первых, sqlite не имеет фактических типов даты / времени.Это простая база данных с несколькими типами.Ваш столбец smalldatetime
на самом деле имеет NUMERIC
сходство (см. правила сходства ).
Чтобы встроенные функции Sqlite могли их понимать, дата и время могут храниться .в виде чисел или текста ;числа - это либо количество секунд с эпохи Unix, либо юлианский день.Текстовые строки могут быть одного из нескольких форматов;см. список в документация .Все они имеют дополнительное преимущество, заключающееся в том, что по сравнению с другими временными метками в том же формате они могут быть правильно отсортированы.
Вы, похоже, используете текстовые строки, такие как '01/10/2018 04:00:00 PM'
.Это не тот формат, который понимают функции даты и времени в sqlite, и он не сортируется естественным образом, поэтому его нельзя использовать в сравнениях, кроме проверки равенства.Плюс это неоднозначно: 1 октября или 10 января?В зависимости от того, откуда вы, у вас будет другая интерпретация.
Если вы измените свой формат метки времени на более подходящий, например (Предположим, 1 октября) '2018-10-01 16:00:00'
, вы сможете сортироватьи сравнивать диапазоны, и использовать его с функциями sqlite.