学习SQL Server。为什么我不能插入日期栏?

时间:2018-11-09 22:14:46

标签: sql-server ssms

为什么我不能将此日期插入刚刚创建的表格中?

create table Car (  ID int NOT NULL constraint PKID Primary Key,
                    Manufacturer varchar(50) NOT NULL, 
                    Model varchar(50) NOT NULL, 
                    Colour varchar(50) NOT NULL, 
                    Mileage int, 
                    DateOfRegistration Date NOT NULL,
                    NumberPlate varchar(8) NOT NULL, 
                    [4x4] bit NOT NULL, 
                    PreviousOwners smallint,
                    MotExpiry date not null)

Insert into Car (ID, Manufacturer, Model, Colour, DateOfRegistration, NumberPlate, [4x4], MotExpiry) 
Values 
(1000001, 'Nissan', 'XTrail','Green', 2014, 'EK64 XEJ', 1, '2018-11-26')
  

消息206,级别16,状态2,第15行操作数类型冲突:int is   与日期不符

2 个答案:

答案 0 :(得分:1)

2014是数字,而不是日期。如果DateOfRegistration实际上只是YearOfRegistration,则将其类型更改为int。

否则,将2014更改为“ 2014-01-01”或SQL Server可以将其解析为日期的其他字符串。

答案 1 :(得分:0)

DateOfRegistration是一种DATE类型,您正在尝试插入2014的{​​{1}}。插入INTEGER,或者如果只想插入DATE,则将数据类型更改为INTEGER

YEAR

或者,将注册日期作为日期...

alter table Car 
alter column DateOfRegistration int