Rails 使用 'Date' 类型的列创建记录

Rails create record with column of type 'Date'

我有一个名为 class 的记录,其中包含这些列:

'ID' INT, 
'RECORD' VARCHAR2(50),
'CREATED_AT' DATE,
'UPDATED_AT' DATE,
'MANUAL_UPDATE' DATE

我想使用以下代码插入新记录:

Record.new(ID: '1', RECORD: 'Foo', MANUAL_UPDATE: '20150110122356')

将创建新记录,但在 MANUAL_UPDATE 列中,值变为 Nil。

我想用 '%Y%m%d%H%M%S' 格式提供的字符串创建记录。我该怎么做?

有关数据库结构的更多信息:

CREATE TABLE ZMNS_TEST.SAVED_ITEMS
(
  ID                             INT NOT NULL,
  RECORD                         VARCHAR2(50 CHAR) NOT NULL,
  CREATED_AT                     DATE NOT NULL,
  UPDATED_AT                     DATE NOT NULL,
  MANUAL_UPDATE                  DATE,
)

您正在尝试将 String(时间戳)插入 Date 列,因此您得到 nil。您有两个选择:

1> 更新正确的日期:

Record.new(ID: '1', RECORD: 'Foo', MANUAL_UPDATE: Date.today)

2> 将您的时间戳转换为日期,然后更新:

date = Date.strptime("20150110122356",'%Y%m%d%H%M%S')
#=> Sat, 10 Jan 2015
Record.new(ID: '1', RECORD: 'Foo', MANUAL_UPDATE: date)

试试下面的方法

Date.strptime('20150110122356', '%Y%m%d%H%M%S')

Record.new(ID: '1', RECORD: 'Foo', MANUAL_UPDATE: Date.strptime('20150110122356', '%Y%m%d%H%M%S'))