我必须在sql脚本中使用一些硬编码数据,为此,我正在使用临时表
CREATE TABLE #Temp
(
[Type] INT,
StartDate DATETIME,
EndDate DATETIME,
InterestRate DOUBLE
);
INSERT INTO #Temp
VALUES (1, '2015-07-01', '2017-05-01', 27),
(1, '2017-05-02', '2017-06-30', 25.71)
在第6行,它显示为Expecting Id
错误
有没有最简单的方法来做到这一点?
double
中没有sql server
数据类型,请使用decimal
。
CREATE TABLE #Temp
(
[Type] Int,
StartDate DateTime,
EndDate DateTime,
InterestRate decimal
);
Insert Into #Temp Values
(1,'2015-07-01','2017-05-01',27),
(1,'2017-05-02','2017-06-30',25.71)
[SQL
不支持DOUBLE
,可以使用float
或decimal
代替DOUBLE
。
CREATE TABLE #Temp
(
[Type] Int,
StartDate DateTime,
EndDate DateTime,
InterestRate decimal
);
Insert Into #Temp Values
(1,'2015-07-01','2017-05-01',27),
(1,'2017-05-02','2017-06-30',25.71)
您应使用decimal
,但需要提供scale
和precision
。默认值为0
。 。 。这对于加息不太有用。参见this example。
CREATE TABLE #Temp (
[Type] INT,
StartDate DATETIME,
EndDate DATETIME,
InterestRate DECIMAL(10, 6)
);
INSERT INTO #Temp
VALUES (1, '2015-07-01', '2017-05-01', 27),
(1, '2017-05-02', '2017-06-30', 25.71);
此外,SQL Server does have floating point types。它们分别称为float
和real
。出于财务目的,我认为decimal
/ numeric
是更好的选择。