2013-04-16 5 views
2

날짜 또는 날짜 범위와 관련된 검색어에 특정 시간대를 사용하도록 렁을 말할 수있는 방법을 찾으려고합니다. 예를 들어 ransack은 기본적으로 datetime 검색을 위해 UTC를 사용하며 PST 시간대를 사용하여 쿼리를 수행하려고합니다. 어떻게해야합니까? 해킹이나 구성이 있습니까? 다음은 생성 된 쿼리 예입니다.ransack 검색어에 시간대를 지정하십시오.

SELECT DISTINCT "주문"LEFT OUTER JOIN "고객"ON 고객 "id"= "주문" "customer_id"LEFT OUTER JOIN "지불"ON "지불" "order_id "주문"어디에서 "주문". "test_transaction"= 'f'AND (("주문") "주문". "ID"LEFT OUTER JOIN "주문 _ "created_at"> = '2012년 11월 3일 07 : 00 : 00.000000'AND '주문' 'created_at "< ='2012년 11월 5일 06 : 59 : 59.000000. '))

감사

답변

1

Ransack의 특성에 대해서는 확신 할 수 없지만 일반적으로 UTC 날짜를 데이터베이스에 저장하는 경우 UTC 값으로 쿼리해야합니다.

쿼리 날짜가 태평양 표준시 인 경우 쿼리에 전달하기 전에 UTC로 변환하십시오. timezone, TZInfo 또는 ActiveSupport::TimeZone과 같은 Ruby gem을 사용하여 변환 할 수 있습니다.