我有一个 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'
不会给我 16th 的结果,这些结果应该包含在结果集中。(与 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行答案,不多)