Rails& SQLite3:日期不匹配

时间:2009-04-24 20:53:22

标签: ruby-on-rails sqlite

Rails从我的数据库记录返回错误的日期。对于我的模型(“目标”),如果我在脚本/控制台中运行:

Target.find :all

我使用“recorded_on”字段读取所有记录,读取日期为“ 2000-01-01 xx:xx:xx”。

如果我使用相同的数据库并在sqlite3控制台中运行:

SELECT * FROM targets;

我使用“recorded_on”字段读取所有记录,读取日期为“ 2009-04-22 xx:xx:xx”,这是正确的日期。

两者之间的时间值似乎正确,只有日期值关闭。

发生了什么事?

1 个答案:

答案 0 :(得分:0)

rails和数据库之间时间的可靠转换取决于I had no patience to tackle的许多rails和数据库配置voodoo。

我的最终解决方案是停止在数据库中存储时间值。我存储了整个:

Modelname.time_column = Time.now().to_i

(实际上,我在覆盖属性的setter时执行to_i位并反转getter中的进程:)

Time.at(read_attribute(:time_column))

这是一个黑客,但我很高兴它的简单性和在配置和开发机器之间移动它是多么简单。

当然,缺点是当你查询它时,sql会给你一个老式的int。 MySQL可能有转换的方法,但我怀疑SQLite会不会。

相关问题