這是我第一次嘗試使用PostgreSQL的Rails。我對通常看到的有關存儲絕對時間的列的代碼中缺少timestamp with timezone
用法感到困惑。一個主要的例子是devise,它存儲列的日期時間列,它轉換爲PostgreSQL中的timestamp with out timezone
。Rails數據庫特定的數據類型
我認爲這是一個不好的做法,因爲timestamp with out timezone
可能意味着任何時區。如果您正在從另一個應用程序訪問數據庫,那麼您應該有不知道哪些時區的時間戳引用,而不看Rails。它只是成爲一個分散的混亂。
有沒有辦法爲我創造了PostgreSQL中的ActiveRecord遷移/模式的timestamp with time zone
?會與當前的Rails框架代碼產生不兼容問題?
我明白ActiveRecord的嘗試是數據庫無關的,但是這僅僅是一個忌諱我不能忽視。
這沒有幫助,謝謝。 – 2012-07-30 00:39:24
您必須假設所有時間都存儲爲UTC,這是跨多個時區的良好做法。在任何第三方應用程序或查詢中,只需從UTC轉換到您希望的時區,並且您擁有正確的時間。 PostgreSQL中的所有數據都應該是UTC。如果它沒有被存儲爲真正的UTC,那麼這可能是一個問題。 – 2012-07-30 01:19:02
是的,我正在那樣做。 – 2012-07-30 01:21:14