@modernstyle
Code GOD

Чем в Rails заменить strftime после перехода на Postgres?

Перешел с SQLite на PG и на конструкциях типа:
@today = Date.today.strftime("%d.%m.%Y")
или
def self.query_by_year_month(y, m)
  where("strftime('%Y', date) = ? and strftime('%m', date) = ?", y, m)
end

ловлю
PG::UndefinedFunction: ERROR:  function strftime(unknown, date) does not exist

Немного погуглив, увидел что Postgres не знает метод strftime но знает to_char, date_part, и тп, однако хоть убейте я не понимаю как им пользоваться. Подскажите, пожалуйста, как пользоваться этим методом в Rails!
  • Вопрос задан
  • 2865 просмотров
Решения вопроса 1
sdevalex
@sdevalex
def self.by_month(month)
  dt = DateTime.new(month) # на случай если строку передают
  where("published_at >= ? and published_at <= ?", dt.beginning_of_month, dt.end_of_month)
end
Post.by_month(DateTime.new(1970, 1))
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
chernomyrdin
@chernomyrdin
Web developer
def self.query_by_year_month(y, m)
  where("date_part('year', date) = ? and date_part('month', date) = ?", y, m)
end
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

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