Я пытаюсь войти в таблицу БД приложения 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
, чтобы его можно было сохранить в таблице?