我有一個表sessions
,日期時間字段爲starts_at
。 starts_at
存儲在UTC中,但是我想在當地時間返回按照starts_at排序的會話,而不是日期時間。在活動記錄訂單子句中使用mysql函數
所以如果我有日期時間會話:
s1 Jan 1, 13:00
s2 Jan 2, 11:00
s3 Jan 1, 23:00
不考慮時間段我希望他們返回順序如下:s2, s1, s3
。
現在我想在本地時間獲得所有utc時間,因爲可以說時區實際上爲utc增加了2個小時。 s2, s1, s3
的順序現在是錯誤的。我們想要s3,s2,s1。
我一直想的是:
Session.order("CONVERT_TZ(starts_at,'UTC', '#{tz}')")
和
Session.order("TIME(CONVERT_TZ(starts_at,'UTC', '#{tz}'))")
凡tz = Time.now.strftime('%Z')
(這我還設置Time.now.zone的時區,所有的前會議將在)
不幸的是,這給了我奇怪的結果這似乎沒有任何形式的順序。
謝謝!它看起來像傳遞字符串'UTC'和'PDT'是問題,當我通過小時數時,一切正常。 – xxyyxx