Изучение SQL Server. Почему я не могу вставить в столбец даты? - PullRequest
0 голосов
/ 10 ноября 2018

Почему я не могу вставить эту дату в только что созданную таблицу?

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 Тип операнда clash: int is несовместимо с датой

Ответы [ 2 ]

0 голосов
/ 10 ноября 2018

2014 - это число, а не дата. Если DateOfRegistration действительно является просто YearOfRegistration, измените его тип на int.

В противном случае измените 2014 на «2014-01-01» или другую строку, которую SQL Server может проанализировать как дату.

0 голосов
/ 10 ноября 2018

DateOfRegistration - это тип DATE, и вы пытаетесь вставить 2014, который является INTEGER. Либо вставьте DATE, либо измените тип данных на INTEGER, если вы собираетесь вставить только YEAR.

alter table Car 
alter column DateOfRegistration int

Или введите дату регистрации в качестве даты ...

Insert into Car (ID, Manufacturer, Model, Colour, DateOfRegistration,NumberPlate, [4x4], MotExpiry) 
Values 
(1000001, 'Nissan', 'XTrail','Green', getdate(), 'EK64 XEJ', 1, '2018-11-26')
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...