gpt4 book ai didi

sql - 使用 '=<' 和 '>=' 而不是使用 'between' 比较两个日期时,在精度方面是否存在差异?

转载 作者:行者123 更新时间:2023-12-04 04:46:37 25 4
gpt4 key购买 nike

我正在处理提供显示在报告上的记录的查询,并注意到以前的开发人员使用 '=<' 和 '>=' 来比较作为所述查询参数的两个日期时间。这些参数作为字符串传递,不会转换为日期时间对象。
我注意到,在查询结果中,我缺少大约两天的数据。
我想知道在使用 '=<' 和 '>=' 而不是使用 'between' 比较这些日期时间时,精度是否有任何差异(这可能是导致结果中数据丢失的原因)。

为了完整起见,这里是当前使用的比较的一个简单示例:

Declare @DateTo varchar(max) = '2013-07-29'
Declare @DateFrom varchar(max) = '2013-07-07'

SELECT * FROM Records WHERE Date =< @DateTo AND Date >= @DateFrom

最佳答案

(SQL 中没有 =< 运算符,您的意思是 <= 运算符。)
between运算符比较包含的值,因此它与使用 <= 相同和 >=运营商。

如果这些值只是一个日期,您可以使用类似的包含值。如果它们还包含时间分量,则应考虑使用独占上限。这样你就可以在不重叠的情况下查询不同的范围,例如值 2013-07-30 00:00:00.000不会同时包含在 2013-07-07 to 2013-07-30 范围内和 2013-07-30 to 2013-08-02 .表达式 Date < '2013-07-30'将包括直到 2013-07-29 23:59:59.999 的所有值但不是 2013-07-30 00:00:00.000 .

示例:

Declare @DateTo varchar(max) = '2013-07-30' -- the day after the range
Declare @DateFrom varchar(max) = '2013-07-07'

SELECT * FROM Records WHERE Date < @DateTo AND Date >= @DateFrom

关于sql - 使用 '=<' 和 '>=' 而不是使用 'between' 比较两个日期时,在精度方面是否存在差异?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18074741/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com