SQL 服务器中如果不存在查询时出错

Error in if not exists query in SQL Server

以下查询有什么问题?我找不到错误。谁能帮忙 我有这个问题吗?

IF (NOT EXISTS(SELECT * 
               FROM chennai_metro_data 
               WHERE TIME1 ='09:00' AND DATE1 ='1-23-2017')) 
BEGIN 
    INSERT INTO chennai_metro_data 
    VALUES (2021700002,'1-23-2017','09:00',1,0,555555) 
END 
ELSE 
BEGIN 
    UPDATE chennai_metro_data 
    SET CUMFLOW = 555555 
    WHERE TIME1 = '09:00' AND DATE1 = '1-23-2017' 
END

我收到这个错误:

Msg 206, Level 16, State 2, Line 1
Operand type clash: int is incompatible with date

作为最佳实践,您应该始终在使用 INSERT 时定义要插入的列的列表 - 这有助于避免很多问题!

另外:对于日期,要独立于任何语言和区域设置,请尝试使用 ISO-8601 格式 - YYYYMDDD 仅用于日期(无时间),或 YYYY-MM-DDTHH:MM:SS日期和时间。

所以试试这个代码:

INSERT INTO chennai_metro_data(col1, col2, ...., colN)
VALUES (2021700002, '20170123', '09:00', 1, 0, 555555) 

并用您要插入数据的 table 中的 实际列名 替换 col1colN