2014-01-22 44 views
0
@interactions_by_time = @report.interactions.where(interaction_type: "comment").select('EXTRACT(HOUR from interaction_time)').group('EXTRACT(HOUR FROM interaction_time)').count.sort_by {|k,v| v}.reverse 

我有上面的活動記錄查詢,它基本上是根據發生時間(小時)對交互進行分組。但是,結果是這樣的:如何將此sql查詢(活動記錄)轉換爲正確的時區?

[[23.0, 23], [2.0, 17], [21.0, 16], [20.0, 11], [1.0, 11], [0.0, 9], [22.0, 7], [18.0, 5], [3.0, 5], [4.0, 4], [5.0, 4], [19.0, 4], [12.0, 3], [15.0, 3], [16.0, 2], [14.0, 1], [17.0, 1], [11.0, 1], [10.0, 1], [13.0, 1]] 

這是UTC時間但是,我怎麼確保這是在任何時間CURRENT_USER是?

回答

0

您可以使用CONVERT_TZ功能採取datetime和從一個時區轉換爲另一種:(作爲UTC的偏移量)

CONVERT_TZ(status_changes.created_at, '+00:00', '+08:00')

或從存儲的值(UTC)轉換像當地時區(PST)。

CONVERT_TZ(status_changes.created_at,'UTC',?) between ? and ?, 'PST, '2014-01-24', '2014-03-10'

然後,您可以允許用戶選擇自己的時區和轉換,以匹配其特定的時區。

相關問題