我有一些新聞事件通過postgresql日期時間列存儲在數據庫中。但是,我想針對事件發生的時間進行查詢。類似於從Rails日期時間列(帶時區)查詢一天中的時間
Event.where("occurred_at < '11:00'")
如果這是一個postgresql時間列,您可以執行此操作。
要添加一個額外的皺紋,我有我的Rails的時區設置爲東部時間爲整個應用程序
config.time_zone = 'Eastern Time (US & Canada)'
所以,如果你嘗試以某種方式提取數據庫的時候,那個時候將是UTC ,所以在半年時間內,時間比較將會減少1小時(因爲夏令時)。
我唯一能想到的就是維護一個單獨的'時間'類型的數據庫列。
編輯和澄清
這個問題的棘手的部分是,UTC,因爲夏令時的半年期間偏移變化。 Time.zone.parse(「2013-01-01 10:00」)給出2013年1月1日10:00 EST-05:00(即15:00 UTC),而六個月後Time.zone.parse(「2013- 07-01 10:00「)給出了2013年7月1日上午10:00至04:00(即14:00 UTC)。所以你不能只在不知道日期的情況下查詢時間。
請參閱:http://stackoverflow.com/questions/4002958/rails-utc-to-local-and-daylight-savings-time演示如何Rails將帳戶時區偏移使用夏時制區域。 – Beartech
您是否想要查詢時間,而不管它發生的那一天? – Beartech
是的,確切地說。無論如何 – idrinkpabst