如何使用strftime来查询日期以格式化

时间:2019-02-11 14:47:36

标签: mysql ruby-on-rails ruby date

我正在尝试获取该月的所有记录。我要查询的字符串的格式为2019-01-12。我要查询的记录是DateTime记录,因此它具有类似2018-08-11 13:39:22.959330的格式。

所以我正在尝试构建一个可以实现此目的的查询

Score.where('user_id = ? AND date_closed.strftime("%Y-%m) = ?', current_user.id, date)

date2019-01-12字符串。上面的代码产生错误

  

功能date_closed.strftime不存在

我做了谷歌,但无法找到实现这一目标的东西。大多数解决方案都涉及在一个日期范围内进行搜索,我真的很想尝试使搜索方法保持相同。

2 个答案:

答案 0 :(得分:4)

您具有https://dev.mysql.com/doc/refman/5.5/en/date-and-time-functions.html#function_date-formatDATE_FORMAT功能

DATE_FORMAT(date_closed, "%Y-%m")

编辑:您还必须格式化传递给查询的日期

答案 1 :(得分:2)

您可以使用mysql数据功能YEARMONTH

Score.where('user_id = ? AND YEAR(date_closed) = ? AND MONTH(date_closed) = ?', current_user.id, date.year, date.month)