SQL Server, как вставить дату в столбец с типом данных даты - PullRequest
0 голосов
/ 11 сентября 2018

Я пытаюсь вставить дату дня рождения в дату столбца в пределах Sql Server 2008 r2 db. Я пытался передать ее, как показано ниже, но ни одна из них не сработала

enter image description here

INSERT INTO t1 (birthday) VALUES (cast(08/12/2010 as date))

Сообщение 529, уровень 16, состояние 2, строка 1 Явное преобразование из типа данных int в дату не допускается.

INSERT INTO t1 (birthday) VALUES (20100812)

Столкновение с типом операнда: int несовместим с датой

INSERT INTO t1 (birthday) VALUES (20100812)

INSERT INTO t1 (birthday) VALUES ('20100812')

Ошибка преобразования типа данных varchar в числовой.

INSERT INTO t1 (birthday) VALUES ('2010-08-12')

Ошибка преобразования типа данных varchar вчисловой.

Ответы [ 3 ]

0 голосов
/ 11 сентября 2018

Из ваших сгенерированных сообщений об изменениях и сообщениях об ошибках похоже, что столбец birthday не имеет DATE тип данных

Исправьте это, и это будет работать

INSERT INTO t1 (birthday) VALUES (cast(08/12/2010 as date))

или

INSERT INTO t1 (birthday) VALUES ('20101210')

Полное репо - Работает

CREATE TABLE t1 (Birthday DATE)

INSERT INTO dbo.T1 ( Birthday)
VALUES ('20181010') 

INSERT INTO dbo.T1 ( Birthday)
VALUES (CAST('20181010' AS DATE) )

SELECT * FROM dbo.T1

Birthday
2018-10-10
2018-10-10

Ошибка репо (1) - введите значение даты в столбец INT

CREATE TABLE t1 (Birthday INT)

INSERT INTO dbo.T1 ( Birthday)
VALUES (CAST('20181010' AS DATE) )

Сообщение 206, Уровень16, состояние 2, строка 7 Столкновение с типом операнда: дата несовместима с int

Ошибка репо (2) - введите значение даты в числовой столбец

CREATE TABLE t1 (Birthday NUMERIC)

INSERT INTO dbo.T1 ( Birthday)
VALUES (CAST('20181010' AS DATE) )

Сообщение 206, уровень 16, состояние 2, строка 7 Столкновение с типом операнда: дата несовместима с числовым значением

Ошибка Repo (3) - введите значение INT в столбец DATE

CREATE TABLE t1 (Birthday DATE)

INSERT INTO dbo.T1 ( Birthday)
VALUES (20181010) 

Сообщение 206, Уровень 16, Состояние 2, Строка 6 Столкновение с типом операнда: int несовместимо с датой

0 голосов
/ 11 сентября 2018

Почти нет. Попробуйте

INSERT INTO t1 (birthday) VALUES ('2010-08-12')

0 голосов
/ 11 сентября 2018

Во вставке вы упомянули два столбца, т.е. ID и NUM.

Ставка, вы упомянули только 1 значение: Следовательно

INSERT INTO t1 (ID,NUM) VALUES (1, '20100812')
  • Ответ на измененный вопрос:

Тип данных столбца NUM является числовым, и вы пытаетесь вставить varchar.

Следовательно, исправьте ваш тип данных для столбца NUM или вставьте в правильный столбец.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...