【发布时间】:2015-09-02 20:34:11
【问题描述】:
我知道如何查找某个日期范围内的记录,并且看到过类似问题的答案。我的问题是如何在一个查询中将我的日期值从“mm/dd/yy”重新格式化为可以与日期范围进行比较的格式。
我的数据库中有一个列,其中包含“mm/dd/yy”格式的日期。我正在尝试编写一个查询,它将选择由start_date 和end_date 变量定义的日期范围内的所有记录,这些变量是Ruby Date 对象。
这是我目前最好的,但速度很慢:
date_records = Record.select { |r| ( (r.division == division) && (Date.strptime(r.date, "%m/%d/%y") >= start_date) && (Date.strptime(r.date, "%m/%d/%y") <= end_date) ) }
【问题讨论】:
-
可能是stackoverflow.com/questions/2381718/… 的副本 是否有特殊原因直接使用 SQL 语句而不是 ActiveRecord 查询助手?
-
没有理由...我可以使用
.where。我的主要困难是从“mm/dd/yy”格式中获取日期以在查询中进行比较。这是我能做的最好的,而且很慢:date_records = Record.select { |r| ( (Date.strptime(r.date, "%m/%d/%y") >= start_date) && (Date.strptime(r.date, "%m/%d/%y") <= end_date) ) } -
似乎第一项工作应该是将这些日期存储为日期,而不是字符串。
标签: mysql ruby-on-rails date