SQL Server是否确定硬编码日期较大?

奥斯汀

一位老员工留下了我一直在调试的大量查询,看来问题出在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链接

请注意,该链接不包含我的案例的精确副本

编辑:包括与实际查询有关的其他信息。

卢卡斯·索兹达(Lukasz Szozda)

这是字符串比较而不是日期比较:

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

db <> fiddle演示

我只是好奇为什么SQL Server会像我描述的那样对此进行评估。

'12/15/2019' 它是一个字符串文字,SQL Server不知道您要处理日期,除非您明确表达了自己的意图。


我有一个表,其中列col1包含值20191216

如果要与列进行比较,则列的数据类型和数据类型优先规则很重要

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

SQL Server CLR硬编码的SQL语句

来自分类Dev

在SQL Server中查找任何硬编码值

来自分类Dev

T-SQL:应该如何概括此SQL查询检查日期条件(而不是硬编码)?

来自分类Dev

SQL Server代理作业-通过日期并确定作业是否将基于计划运行

来自分类Dev

SQL Server确定值是否单调

来自分类Dev

SQL Server确定值是否单调

来自分类Dev

在提取数据时硬编码数据时间中的特定日期 - SQL

来自分类Dev

与SQL Server中的硬编码值相比,表类型的WHERE IN性能要好得多

来自分类Dev

SQL - ORDER BY 与 UNIONed 硬编码值?

来自分类Dev

计算日期是否在 BST 内 - SQL Server

来自分类Dev

如何确定SQL Server中的连续日期记录

来自分类Dev

如何确定SQL Server 2012中是否存在序列?

来自分类Dev

使用SQL Server检查日期是否在日期范围之间

来自分类Dev

如果我在SQL Server查询中用变量替换硬编码1 = 0,则会减慢速度

来自分类Dev

SQL C#确定SQL Server的类型

来自分类Dev

SQL Server:日期减去

来自分类Dev

日期SQL Server加入

来自分类Dev

SQL Server日期时间

来自分类Dev

SQL Server 日期计算

来自分类Dev

PostgreSQL SQL函数比硬编码查询慢10倍

来自分类Dev

与硬编码的SQL查询相比,NHibernate查询非常慢

来自分类Dev

通过SQL返回硬编码值的不同方法

来自分类Dev

PostgreSQL SQL函数比硬编码查询慢10倍

来自分类Dev

在Microsoft SQL Server中是否可以创建日期部分的列?

来自分类Dev

如何查看日期是否在当前月份的SQL Server中?

来自分类Dev

在Microsoft SQL Server中是否可以创建日期部分的列?

来自分类Dev

如何确定SQL Server中日期时间的“ ISO 8601月部分”?

来自分类Dev

确定最早发货日期与当前库存水平的 SQL Server 查询

来自分类Dev

如何确定 SQL Server“寻找岛屿”中的连续日期计数/天数(连续行)

Related 相关文章

  1. 1

    SQL Server CLR硬编码的SQL语句

  2. 2

    在SQL Server中查找任何硬编码值

  3. 3

    T-SQL:应该如何概括此SQL查询检查日期条件(而不是硬编码)?

  4. 4

    SQL Server代理作业-通过日期并确定作业是否将基于计划运行

  5. 5

    SQL Server确定值是否单调

  6. 6

    SQL Server确定值是否单调

  7. 7

    在提取数据时硬编码数据时间中的特定日期 - SQL

  8. 8

    与SQL Server中的硬编码值相比,表类型的WHERE IN性能要好得多

  9. 9

    SQL - ORDER BY 与 UNIONed 硬编码值?

  10. 10

    计算日期是否在 BST 内 - SQL Server

  11. 11

    如何确定SQL Server中的连续日期记录

  12. 12

    如何确定SQL Server 2012中是否存在序列?

  13. 13

    使用SQL Server检查日期是否在日期范围之间

  14. 14

    如果我在SQL Server查询中用变量替换硬编码1 = 0,则会减慢速度

  15. 15

    SQL C#确定SQL Server的类型

  16. 16

    SQL Server:日期减去

  17. 17

    日期SQL Server加入

  18. 18

    SQL Server日期时间

  19. 19

    SQL Server 日期计算

  20. 20

    PostgreSQL SQL函数比硬编码查询慢10倍

  21. 21

    与硬编码的SQL查询相比,NHibernate查询非常慢

  22. 22

    通过SQL返回硬编码值的不同方法

  23. 23

    PostgreSQL SQL函数比硬编码查询慢10倍

  24. 24

    在Microsoft SQL Server中是否可以创建日期部分的列?

  25. 25

    如何查看日期是否在当前月份的SQL Server中?

  26. 26

    在Microsoft SQL Server中是否可以创建日期部分的列?

  27. 27

    如何确定SQL Server中日期时间的“ ISO 8601月部分”?

  28. 28

    确定最早发货日期与当前库存水平的 SQL Server 查询

  29. 29

    如何确定 SQL Server“寻找岛屿”中的连续日期计数/天数(连续行)

热门标签

归档