【问题标题】:How to insert smalldatetime如何插入小日期时间
【发布时间】:2018-07-24 17:38:35
【问题描述】:

我是 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

我遇到了错误:

消息 102,级别 15,状态 1,第 5 行 '06' 附近的语法不正确。

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

我遇到了错误:

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

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

我遇到了错误:

消息 102,级别 15,状态 1,第 5 行 'T06:' 附近的语法不正确

【问题讨论】:

  • table1的结构是什么?您的第二种方法是正确的,但您似乎正在尝试在 int 列上插入日期
  • 这里:CREATE TABLE table1(id int IDENTITY(1,1) PRIMARY KEY, timelog smalldatetime NOT NULL);
  • 插入 smalldatetime 或 datetime 的正确方法是什么?
  • 语法错误,向表中插入值:INSERT INTO table1 (id, timelog) Values (1, '2018-07-24 00:05:44.610')

标签: sql-server tsql sql-server-2017 smalldatetime


【解决方案1】:

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

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

结果:

【讨论】:

  • 但我仍然收到相同的错误“消息 206,级别 16,状态 2,第 2 行操作数类型冲突:int 与日期不兼容”
  • @irish 语法正确,见小提琴here
猜你喜欢
  • 2021-03-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-03-28
  • 2014-09-24
  • 1970-01-01
  • 2014-09-26
  • 1970-01-01
相关资源
最近更新 更多