我正在尝试使用以下语法在rails 3中执行查询:CourseOrder.where("DATE(ordered_at) = ?", date)
。
我的问题是rails会在UTC中保存所有时间,因此在我的时区(+2)0:33它是第4个但在UTC它是本月的第3个。有没有办法用Timezone查询DateTime的日期部分?
答案 0 :(得分:0)
不要使用日期,而是这样做:
time = DateTime.civil_from_format(:local, 2011, 4, 9)
CourseOrder.where("ordered_at > ? AND ordered_at < ?", time - 1.day, time)
您正在存储日期时间,因此请查询而不是尝试使用不考虑时区的日期。
答案 1 :(得分:0)
通过更改我比较的值来解决问题。
我有一个Date值,现在我将日期值与日期值进行比较,该日期值优于将日期值与日期时间值进行比较,但必须失败。 谢谢你带领我走向正确的方向