相近的SQLSERVER语句不一样的结果

select top 10 * from SyssystemLog where SfcNo='SS20081824.' and CreatTime>=CAST(CAST(GETDATE() AS DATE) AS VARCHAR(10)) + ' 10:00:00'
此SQLSERVER不报错

select * from SyssystemLog where SfcNo='SS20081824.' and CreatTime>=CAST(CAST(GETDATE() AS DATE) AS VARCHAR(10)) + ' 10:00:00'
这个SQL预计报错从字符串转换日期和/或时间时,转换失败图片说明

CAST(CAST(GETDATE() AS DATE) AS VARCHAR(10))

改成

CONVERT(VARCHAR(10), GETDATE(), 23)

你用这个语句测试下看

select  CAST(CAST(GETDATE() AS DATE) AS VARCHAR(10)) from SyssystemLog where  CreateTime>='2019-01-01 12:30:00' 

是不是结果不是你想要的

另外SyssystemLog不应该是SystemLog吗?(拼写问题?)

你的意思是加上top 10不报错?按理说不会,你可以把不报错的代码复制粘贴下,去掉 top 10,下面的代码可能存在非法的字符或者细微的错误。