SQLite и работа с датами

Jul 08, 2016 11:31

Упражняясь с Node.js столкнулся с одной интересной особенностью базы данных sqlite.

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

select * from myTable where date between '01.06.2016' and '30.06.2016'

В результате выполнения этого запроса из базы ничего не было выбрано.

Что же нам теперь делать???? Где же мы ошиблись???

Гугл говорит, что sqlite хранит дату в виде строки и для подобных запросов необходимо использовать функцию date(), чтоб привести строки к типу дата и расслабиться.

Делаем!

select * from myTable where date(date) between date('01.06.2016') and date('30.06.2016')

и в результате - опять пустая выборка

Опять гуглим, пробуем юзать функции sqlite, ничего не получаем, пробуем приводить формат даты, все нифига. Гуглим, пробуем, гуглим...

Потом смотрим мануал sqlite, смотрим на свою таблицу... и офигеваем.

Я забиваю дату в привычном мне формате DD.MM.YYYY а в мануале рекомендуют YYYY-MM-DD.

Да чтоб тебя - приводим все введенные даты к рекомендуемому формату и делаем

select * from myTable where date between '2016-06-01' and '2016-06-30'

ВСЕ ОТЛИЧНО РАБОТАЕТ.

Вот так вот я слегонца потерял целый день, вот так вот не внимательно читать мануалы.
Естественно, после приведения формата дат перестал работать crud, но это уже мелочи. Я то уж чуть не разочаровался в sqlite как в пригодной базе вообще. 

node.js, sqlite, js

Previous post
Up