Rails使用时区获取DateTime的Date部分

时间:2011-04-10 00:07:10

标签: ruby-on-rails ruby datetime time

我正在尝试使用以下语法在rails 3中执行查询:CourseOrder.where("DATE(ordered_at) = ?", date)

我的问题是rails会在UTC中保存所有时间,因此在我的时区(+2)0:33它是第4个但在UTC它是本月的第3个。有没有办法用Timezone查询DateTime的日期部分?

2 个答案:

答案 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值,现在我将日期值与日期值进行比较,该日期值优于将日期值与日期时间值进行比较,但必须失败。 谢谢你带领我走向正确的方向