2012-04-05 18 views
2

특정 날짜에 태어난 모든 사람들을 얻고 싶습니다. 28/03/1989 22 : 우리가 안전한 형태로 날짜 29/03/1989와 사용자가 DB를에서 필드 생년월일이 포함 된 경우 이제utc를 사용하여 날짜와 레일 날짜를 mysql

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

: 순간을 위해 우리는 다음과 같이 쿼리를 사용합니다 : 00:00 UTC + 2

문제는 mysql의 day() 함수를 사용할 때 mysql이 29 대신 29가 걸리는 것입니다.

어떻게 해결할 수 있습니까?

+0

http://stackoverflow.com/questions/1349280/storing-datetime-as-utc-in-php-mysql – kommradHomer

답변

1

생일 속성을 저장하기 위해 어떤 종류의 MySQL 데이터 형식을 사용합니까? datetime 대신 데이터 형식 date을 선택하여 날짜가 아닌 시간 만 저장하면 도움이됩니다.

+0

해당 없음 (1989-01-11 00:00:00) yyyy-mm-dd hh : mm : ss – kommradHomer

1

예를 들어 config.time_zone = "Europe/Berlin"과 같이 environment.rb (Rails 2.x) 또는 application.rb (Rails 3.x)에 올바른 시간대를 설정하는 것이 도움이 될 수 있습니까? 활성 레코드는 시간을이 영역으로 자동 변환합니다.

+0

실제로, 날짜가 DB의 28/03/1989 22:00:00 UTC + 2 인 경우 mysql 함수 일 (1983/08/1 22:00:00 UTC + 2)은 되돌려주는 28과 activerecord day (Time.now) 29 우리가 있다면 28/03/1989 22:00:00 UTC + 2 – SteenhouwerD

관련 문제