如何解决操作数类型冲突:日期与 int 不兼容

Posted

技术标签:

【中文标题】如何解决操作数类型冲突:日期与 int 不兼容【英文标题】:How to resolve Operand type ***: date is incompatible with int 【发布时间】:2020-02-04 04:46:00 【问题描述】:

如标题中所述,我正在尝试将数据从下面的另一个表中插入到一个表中。

Insert into dbo.result (
resultdate,
examdate
)
Select 
ResultDate,
ExamDate
From dbo.examdata

但是我得到了标题中的错误。result 表中两列的列的数据类型是 int 但在 examdata 中两列都是 date 数据类型,我没有不想改变结果表的数据类型。 如何解决这个问题?

【问题讨论】:

使用格式函数将日期转换为int 正如您所说,要从 dbo.examdata 插入数据的表 dbo.result 的数据类型对于两列都是 int 。所以,肯定会报错。要解决此问题,请更改与日期匹配的数据类型,即日期或日期时间。 这就是我问的喜欢怎么做? 【参考方案1】:
Insert into dbo.result (
resultdate,
examdate
)
Select 
CONVERT(INT,FORMAT(ResultDate,'yyyyMMdd')) as ResultDate,
CONVERT(INT,FORMAT(ExamDate,'yyyyMMdd')) as ExamDate
From dbo.examdata

【讨论】:

我们也可以在插入语句中进行相同的更改吗? 我没听懂,但是插入语句只包含列名。 @VasZ 您应该接受答案,因为它对您有帮助。它决定其他人很容易找到答案。

以上是关于如何解决操作数类型冲突:日期与 int 不兼容的主要内容,如果未能解决你的问题,请参考以下文章

Sql Server如何使用date数据类型将日期插入到列中

操作数类型冲突:int 与 uniqueidentifier 不兼容

SQL Server - 操作数类型冲突:数字与 datetimeoffset 不兼容

操作数类型冲突:图像与 varchar(max) 不兼容

操作数类型冲突:uniqueidentifier 与 float 不兼容

SQL Server Always Encrypted:操作数类型冲突:varchar 与 varchar(max) 不兼容