2

特定の日付に生まれたすべての人を取得したいと考えています。今のところ、次のようなクエリを使用します。

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

フォームで 1989 年 3 月 29 日の日付を持つユーザーを保護すると、db のフィールドの生年月日には次のものが含まれます: 28/03/1989 22:00:00 UTC+2

問題は、mysql の day() 関数を使用すると、mysql が 29 日ではなく 28 日を使用することです。

どうすればこれを修正できますか?

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 に答える