我正在使用任务和电子表格 gem 将 Excel 电子表格读入我的数据库。我正在阅读的专栏之一是“start_time”。为此,我将形成一个值数组,然后逐一传入每个数组值。
cnum_array = [] # for start times
sheet1.each 3 do |row|
unless row[9].blank?
time = Time.parse(row[9])
cnum_array << time.utc
end
end
count = 0
for course in Course.all
course.update_attribute :start_time, cnum_array[count]
count += 1
end
这似乎工作正常。如果我在最后一个循环中插入“puts course.start_time”语句,它将打印出正确的时间。就像这样:
count = 0
for course in Course.all
course.update_attribute :start_time, cnum_array[count]
puts course.start_time
count += 1
end
这给了我正确的时间,例如“2012-01-23 15:30:00。”
但是当我稍后查找课程时间时(例如通过控制台的 Course.find(1).start_time),它给了我“2000-01-01 15:20:00”。因此,一天中的时间是正确的,但这一天本身可以追溯到 2000 年 1 月 1 日。
有谁知道为什么会发生这种情况,以及我该如何解决它?谢谢!
您正在使用Time
班级。本课程涉及时间,而不是日期。我的猜测是你的数据库列的类型time
以及。
我建议你使用datetime
(或者可能timestamp
) 列类型。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)