我正在尝试登录Ruby应用程序数据库表(MySQL数据库),导入脚本启动,完成的时间和日期以及该脚本执行所需的时间。
开始时间和结束时间的日志记录非常简单,我已经可以正常工作了,但是,我无法获取它来将运行时保存在表中,只是跳过了该字段。
这是迁移文件中的表结构
create_table :import_alls do |t|
t.datetime :Import_Start_Time
t.datetime :Import_Finish_Time
t.time :Import_Duration
t.timestamps
end
这是我的代码...
@script_start_time = Time.now
[... Script ...]
@script_finish_time = Time.now
@script_runtime = @script_finish_time - @script_start_time
import = ImportAll.new
import.Import_Start_Time = @script_start_time # Saves correctly
import.Import_Finish_Time = @script_finish_time # Saves Correctly
import.Import_Duration = @script_runtime # Skips
[... a few other fields to save ...] # All save correctly
import.save!
puts @script_runtime # Puts correct number of seconds as a line in the server log
保存的结果:
Import_Start_Time = Start Date & Time as expected
Import_Finish_Time = Finish Date & Time as expected
Import_Duration = NULL (expected duration expressed as HH:MM:SS)
所以
time
字段是否为if类型的正确类型?还是应该为datetime
?
如何将@script_runtime值转换为time
字段,以便可以将其保存在表中?
答案 0 :(得分:1)
可能是某些数据类型转换问题:
2.6.3 :018 > t = Time.new(12.023267542)
=> 0012-01-01 00:00:00 +0053
我将使用time
列而不是integer
来存储持续时间。