Соответствующий день в поле даты и времени из sqlite - PullRequest
1 голос
/ 22 марта 2010

В Ruby on Rails я делаю что-то вроде:

Appointment.find( :first, :conditions => "staff_id = #{staff_id} AND datetimefield = #{datetime}")

... где поле datetime, конечно, поле datetime.Но я хочу только строки, где дата равна заданному дню, скажем, 12.02.2011.Меня не волнует время.Какой простой способ сделать это?

Спасибо!

Ответы [ 2 ]

0 голосов
/ 24 марта 2010
SELECT * FROM TheTable WHERE DATE(TheField) = '2010-02-12';
0 голосов
/ 22 марта 2010

Одна из возможностей - запросить значение между полуночью и 23:59:59 в целевой день, что-то вроде:

datetimefield = BETWEEN #{datetime.strftime('%Y-%m-%d 00:00:00')} AND #{datetime.strftime('%Y-%m-%d 23:59:59')}"

Другой вариант (не рекомендуется, если ваш столбец проиндексирован, поскольку вы почти наверняка лишите законной силы использовать этот индекс) может выглядеть примерно так:

"strftime('%Y-%m-%d', datetimefield) = #{datetime.strftime('%Y-%m-%d')}"
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...