2013-03-06 88 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

相关问题