Я использую следующий код в своем контроллере:
@monday = (Time.now).at_beginning_of_week
@friday = 5.days.since(@monday)-1.second
@sent_emails = ContactEmail.all(:conditions => ['date_sent >= ? and date_sent <= ?', @monday, @friday])
Хотя это хорошо работает на моем локальном sqlite, у меня есть "оператор, не существует метка времени без часового пояса = целочисленная" ошибка.
Я не точно ясен, что измениться.
Идеи?
Спасибо.
Ваши параметры @monday и @friday неверны, они должны иметь тип «отметка времени без часового пояса», но созданы как целые числа, см. Сообщение об ошибке. SQLite не имеет типов данных datetime, поэтому даты хранятся в виде текста или целых чисел (unix-timestamps). Вот почему вы не получаете сообщение об ошибке в SQLite.
Убедитесь, что вы создали отметки времени вроде «2004-10-19 10:23:54», и все будет в порядке. Другой вариант - функция PostgreSQL to_timestamp () для преобразования вашей временной метки unix в метку времени:
@sent_emails = ContactEmail.all(:conditions => ['date_sent >= to_timestamp(?) and date_sent <= to_timestamp(?)', @monday, @friday])