Sql server 如何插入smalldatetime

Sql server 如何插入smalldatetime,sql-server,tsql,sql-server-2017,smalldatetime,Sql Server,Tsql,Sql Server 2017,Smalldatetime,我不熟悉sql server,因为这是我客户机的要求。我无法插入,因为我遇到了有关smalldatatime的错误。我的问题出了什么问题?我什么都试过了,但还是出错了 以下是我尝试过的东西: SET IDENTITY_INSERT table1 ON INSERT INTO table1 (id, timelog) values (1, 2018-07-24 06:30:50.000) SET IDENTITY_INSERT table1 OFF 我得到的错误是: Msg 102,15级,状态

我不熟悉sql server,因为这是我客户机的要求。我无法插入,因为我遇到了有关smalldatatime的错误。我的问题出了什么问题?我什么都试过了,但还是出错了

以下是我尝试过的东西:

SET IDENTITY_INSERT table1 ON
INSERT INTO table1
(id, timelog) values
(1, 2018-07-24 06:30:50.000)
SET IDENTITY_INSERT table1 OFF
我得到的错误是:

Msg 102,15级,状态1,第5行 “06”附近的语法不正确

我得到的错误是:

Msg 206,16级,状态2,第2行 操作数类型冲突:int与日期不兼容

我得到的错误是:

Msg 102,15级,状态1,第5行 “T06:”附近的语法不正确


正确的语法是第二个,但缺少
关键字:

CREATE TABLE table1( id int IDENTITY(1,1) PRIMARY KEY, timelog smalldatetime NOT NULL ); 

SET IDENTITY_INSERT table1 ON
INSERT INTO table1
(id, timelog) values
(1, '2018-07-24 06:30:50.000')
SET IDENTITY_INSERT table1 OFF

select * from table1
结果:


表1的结构是什么?您的第二种方法是正确的,但似乎您正在尝试在int列上插入日期:createtable1(id int-IDENTITY(1,1)主键,timelog smalldatetime notnull);插入smalldatetime或datetime的正确方法是什么?语法错误,在表中插入值:在表1(id,timelog)中插入值(1,'2018-07-24 00:05:44.610'),但我仍然收到相同的错误“Msg 206,级别16,状态2,第2行操作数类型冲突:int与日期不兼容”@语法正确,请参阅FIDLE
SET IDENTITY_INSERT table1 ON
INSERT INTO table1
(id, timelog) values
(1, 2018-07-24T06:30:50.000)
SET IDENTITY_INSERT table1 OFF
CREATE TABLE table1( id int IDENTITY(1,1) PRIMARY KEY, timelog smalldatetime NOT NULL ); 

SET IDENTITY_INSERT table1 ON
INSERT INTO table1
(id, timelog) values
(1, '2018-07-24 06:30:50.000')
SET IDENTITY_INSERT table1 OFF

select * from table1