ошибка Пост-ГРЭС heroku - оператор не существует метка времени без часового пояса = целое число

Я использую следующий код в своем контроллере:

  @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, у меня есть "оператор, не существует метка времени без часового пояса = целочисленная" ошибка.

Я не точно ясен, что измениться.

Идеи?

Спасибо.

7
задан Timothy T. 25 June 2010 в 22:02
поделиться

1 ответ

Ваши параметры @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])
9
ответ дан 7 December 2019 в 03:11
поделиться
Другие вопросы по тегам:

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