【发布时间】:2013-05-23 20:47:57
【问题描述】:
我有一个 UI,我们在其中选择一个日期范围,然后执行查询以检查该范围内的订单。
所以接受的有效格式是
a) 2013-04-01 17:00:00 - 2013-04-16 18:00:00
b) 2013-04-01 17:00:00 - 2013-04-16
c) 2013-04-01 - 2013-04-16
我将它拆分为 ruby 以提供 start_date 和 end_date。我不必触摸开始时间,因为它已为 sql 查询做好了准备。
但是必须修改 end_date,因为要执行范围查询 created_at BETWEEN '2013-04-01 17:00:00' AND '2013-04-16' 不会给我应该包含在结果集中的 16 日的结果。 (与 2013-04-16 00:00:00 相比)
所以这是可行的解决方案,我想出了
end_date = Time.parse(end_date).strftime("%T")=="00:00:00" ? (end_date.to_s) + " 23:59:59" : end_date.to_s
是否有更好的方法来做到这一点,因为上面看起来很混乱? (看还是1-2行答案,不多)
【问题讨论】:
标签: sql ruby-on-rails ruby date time