0
一位老员工留下了我正在调试的大量查询,看来问题出在SQL Server本身确定比较的方式与我预期的不同。
我有一个表,其中的列col1包含该值20191215作为日期时间。
所涉及的零件类似于以下内容:
select case when col1 > '01/01/2020' then 1 else 0 end
此语句正在返回1,表明该'12/15/2019'值大于'01/01/2020'。
我不需要进行纠正查询的帮助,因为除了使用前雇员进行的比较之外,我已经进行了更改,我只是好奇为什么SQL Server会像我描述的那样对此进行评估。
我知道这不是SQL Server也会存储日期的通常方式,问题仅仅是日期的格式吗?
当前的SQL Server版本是:SQL Server 2014 SP3 CU3。
显示相同结果的SQL Fiddle链接
请注意,该链接不包含我的案例的精确副本
编辑:包含与实际查询有关的其他信息。
这是字符串比较,而不是日期比较:
select case when '12/15/2019' > '01/01/2020' then 1 else 0 end
vs
select case when CAST('12/15/2019' AS DATE) > CAST('01/01/2020' AS DATE) then 1 else 0 end
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。