相当于Postgres中的strftime

时间:2013-11-21 11:39:28

标签: ruby-on-rails postgresql ruby-on-rails-4

在开发服务器上将我的SQLite数据库迁移到Postgres之后,我得到了

PG::UndefinedFunction: ERROR:  function strftime(unknown, date) does not exist

是否有可用于保持我的应用程序功能的功能?

编辑:尝试使用to_char,但失败了。特别是,我不明白如何在

这样的结构中实现它
def self.query_by_year_month(y, m)
  where("strftime('%Y', date) = ? and strftime('%m', date) = ?", y, m)
end

谢谢!

3 个答案:

答案 0 :(得分:6)

看起来这是开始学习SQL的好时机!使用以下代码使我的方法工作:

  def self.query_by_year_month(y, m)
    where("extract(year from date) = ? and extract(month from date) = ?", y, m)
  end

答案 1 :(得分:3)

您最好的选择可能是to_char()

一种替代方法是将strftime()的行为实现为用户定义的函数。 (当然是命名" strftime")

答案 2 :(得分:0)

您可能想要使用date_part()。请参阅此处的文档http://www.postgresql.org/docs/9.1/static/functions-datetime.html