首页 > 数据库 > mysql教程 > 如何正确比较 SQL Server 中的日期时间值与仅日期?

如何正确比较 SQL Server 中的日期时间值与仅日期?

DDD
发布: 2025-01-05 19:52:45
原创
179 人浏览过

How to Correctly Compare Datetime Values with Only Dates in SQL Server?

将日期时间值与 SQL Server 中的仅日期进行比较

通过与仅包含日期部分的日期时间值进行比较来查询数据库记录时,了解这一点至关重要

问题

考虑以下 SQL 查询:

Select * from [User] U
where  U.DateCreated = '2014-02-07'
登录后复制

如果用户是在 '2014-02-07 12 创建的: 30:47.220',查询不会返回任何数据,因为比较是严格针对日期部分执行的

解决方案

要正确地将日期时间值与日期进行比较,您应该将其与一天的开始和结束括起来:

Select * from [User] U
where U.DateCreated >= '2014-02-07' and U.DateCreated < dateadd(day,1,'2014-02-07')
登录后复制

这种方法确保查询包含在指定日期创建的记录,无论时间如何

避免在 WHERE 子句中使用函数

避免在 WHERE 子句或连接条件中使用函数(例如 Convert)非常重要,原因如下:

  • 它们可以阻止索引优化,使查询变慢。
  • 它们为每一行引入不必要的计算,可能会降低性能。

不要依赖 BETWEEN Either

通常建议避免对日期使用 BETWEEN 运算符以及时间比较。相反,请使用以下形式:

WHERE col >= '20120101' AND col < '20120201'
登录后复制

无论数据类型或精度如何,这种方法都可以一致地工作,并且还可以避免 BETWEEN 的潜在陷阱。

以上是如何正确比较 SQL Server 中的日期时间值与仅日期?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板