2013-03-06 89 views
2

我正在學習Ruby和Sequel,並試圖製作一些表格。如何用Ruby Sequel製作TIMESTAMP WITH TIME ZONE專欄?

我想在PostgreSQL數據庫中將我的時間值保存爲UTC。所以我做了一桌子

db.create_table :TestTable1 do 
    Timestamp :field1 
end 

,但我得到了

field1 | timestamp without time zone |   | plain | 

我想我的數據庫值有嚴格的基礎。所以我想強制UTC的一切。我認爲應該有一種方法來製作TIMESTAMP WITH TIME ZONE列。我怎樣才能做到這一點?

回答

6

在創建表時,可以指定特定類型:

db.create_table :TestTable1 do 
    column :field1, 'timestamp with time zone' 
end 

你可能想使用Sequel.default_timezone = :utc爲好,但這並不影響時間實際上是如何存儲在數據庫中。

+0

如果我不做'Sequel.default_timezone =:utc',將繼續執行UTC(在DB)<->本地(在Ruby中)轉換嗎?如果它自動處理它,它也會很好。 – Eonil 2013-03-07 00:56:06

+0

它可能會這樣做,它可能不會。如果你想強制執行'Sequel.database_timezone =:utc'和'Sequel.application_timezone =:local'這個行爲。 – 2013-03-07 16:05:05

相關問題