2011-11-07 17 views
0

我目前做如下:是否rails有办法获取mysql查询用法的时间戳?

timestamp = Time.new.to_time.to_i.to_s 

是否有在轨功能,这是否适合你?

+0

Oi veh!谈论失踪的明显。刚刚实现了当前时间戳,我可以使用mysql自己的函数NOW()' – Hopstream

+0

问题是为什么当你创建这些列时,Rails提供了魔术列'created_at'和'updated_at',为什么需要传统的时间戳列呢?这些列一旦存在表中就会被神奇地填充和更新(键入'DATETIME')... – hurikhan77

+0

以存储与业务逻辑相关的其他日期(过期日期等) – Hopstream

回答

1

Rails正在为您做到这一点!

Model.where("date=?", Time.now-5.days) 

将自动生成Time.now-5.days的邮票,你不需要将它们转换!你不应该做的是......像

Model.where("date=#{var here}") 

这已经废弃了的安全性和可用性的原因!

+0

那么现有的代码给出了时间戳“2011-11-07 03:59:15”,同时使用'Time.now'给出'2011-11-07 03:59:15 -0800' ..注意-0800打破了sql查询 – Hopstream

0

您可能要考虑使用DATETIME类型的魔术柱created_atupdated_at。 Rails将自动更新并填充这些列,在插入期间不需要打扰这些列。如果由于导入旧数据库而导致有TIMESTAMP列,请考虑创建一个转换为Rails魔术的迁移。它比处理MySQL试图以一种相当不可预知的方式处理的奇怪时间戳列要好得多,另外它对你的数据库抽象(它会更加不可知)有利。