【发布时间】:2016-09-08 08:04:16
【问题描述】:
IF('08/30/2015'>'08/29/2016')
SELECT '1'
ELSE
SELECT '0'
此 SQL 语句返回 1,因为它只比较月份和日期而忽略年份。我知道我在比较两个 varchar 值——不是日期——但我想知道这个比较遵循什么逻辑 SQL?
有人可以帮帮我吗?同样的场景给了我一个项目中的问题,我通过转换到日期来解决这个问题。但是,我想知道这背后的逻辑。我搜索了它,但没有找到正确的解释。
【问题讨论】:
-
它自然地将它们作为字符串进行比较。它逐个字符地比较它们,第一个不同的是 3 与 2,3 大于 2,因此结果为 1。
标签: sql sql-server