2

我们希望得到所有在特定日期出生的人。目前我们使用这样的查询:

User.where(["day(birthdate) = day(?) AND month(birtdate) = month(?)", Time.now.utc, Time.now.utc ])

现在,当我们在表单中保护日期为 29/03/1989 的用户时,数据库中的出生日期字段包含以下内容:28/03/1989 22:00:00 UTC+2

问题是当我们使用 mysql 的 day() 函数时,mysql 会将 28 而不是 29 作为一天。

我怎样才能解决这个问题?

4

2 回答 2

1

您使用哪种 MySQL 数据类型来存储生日属性?通过选择数据类型date而不是datetime.

于 2012-04-05T14:19:42.927 回答
1

在 environment.rb (Rails 2.x) 或 application.rb (Rails 3.x) 中设置正确的时区可能会有所帮助,例如 config.time_zone = "Europe/Berlin"?Active Record 应该自动将时间转换到这个区域。

于 2012-04-05T14:52:47.320 回答