我在SQL Server 2014中具有下表:
effDate DATETIME(23) NOT NULL
rateType CHAR(2) NOT NULL
rate DECIMAL(10, 8) NOT NULL
运行以下查询时,收到错误消息:
选择失败:8114将数据类型varchar转换为数字时出错。
我的查询:
insert into hprs.dbo.OHPRSrates
values ('01/01/2019', 'D', 0.02642000)
为什么?该行中唯一的数字列是rate
,插入值显然是数字
答案 0 :(得分:6)
我怀疑这些列的排列顺序与您认为的顺序不符。插入时,应确实声明要插入的列。这有什么用吗?
INSERT INTO hprs.dbo.OHPRSrates (effDate,rateType,rate)
VALUES ('01/01/2019','D',0.02642000);
但是,我也建议使用明确的日期格式,例如yyyyMMdd
。因此,对于您的日期,'20190101'
。 01/01/2019
的值是1月1日,无论您以哪种方式读取它,但是01/02/2019
是1月2日还是2月1日?答案取决于您的语言(设置)。
答案 1 :(得分:1)
尝试
insert into hprs.dbo.OHPRSrates
(effDate, rateType, rate) values ('01/01/2019','D',0.02642000)