【发布时间】:2017-01-27 22:12:25
【问题描述】:
如何查询在午夜变化 2 次的时间数据类型。 这是我尝试过的。
声明@timeValue 时间 SET @timeValue = '23:30:00' 选择@timeValue,DATEADD(分钟,-30,@timeValue),DATEADD(分钟,+30,@timeValue) WHERE @timeValue BETWEEN DATEADD(minute, -30, @timeValue) AND DATEADD(minute, +30, @timeValue)
但是如果我们以上面的例子来查找时间是否在前后 30 分钟之间有效,并且它会在午夜发生变化。我没有得到预期的结果。
预期结果将是 timeValue 变量中具有值的行以及其他列之前和之后的 30 分钟。
但是,如果我使用没有像下面这样跨越午夜的时间,它可以正常工作。
声明@timeValue 时间 SET @timeValue = '23:00:00' 选择@timeValue,DATEADD(分钟,-30,@timeValue),DATEADD(分钟,+30,@timeValue) WHERE @timeValue BETWEEN DATEADD(minute, -30, @timeValue) AND DATEADD(minute, +30, @timeValue)
我得到了预期的以下响应。
23:00:00.0000000 22:30:00.0000000 23:30:00.0000000
【问题讨论】:
标签: sql sql-server