gpt4 book ai didi

sql-server - SQL Server 选择日期范围的语句?

转载 作者:行者123 更新时间:2023-12-04 06:20:17 27 4
gpt4 key购买 nike

我有一个包含数千个条目的数据库,其中有两个日期/时间字段,我们称它们为 In 和 Out:

In                                      Out
2011-06-16 13:45:11.000 2011-06-16 13:49:12.000
2011-06-16 13:51:31.000 2011-06-16 14:23:17.000
2011-06-16 14:51:54.000 2011-06-16 14:58:43.000

等等...

在输入上,我有一个时间范围(timeIn 和 timeOut)。在输出中,我需要知道落入此时间范围内的每个记录中“进入”和“退出”时间之间的累计秒数。用这个图更容易说明:

http://i150.photobucket.com/albums/s99/dc2000_bucket/sql_graph.jpg

从图中取名字,我需要知道“时间间隔 1(以秒为单位)”+“时间间隔 2(以秒为单位)”+“时间间隔 3(以秒为单位)”。如何编写这样的 SQL 语句?

最佳答案

select sum(datediff(second, [In], case when @TimeOut < [Out] 
then @TimeOut
else [Out]
end))
from YourTable
where [In] between @TimeIn and @TimeOut

或者,如果您还想包含在 @TimeIn - @TimeOut 内结束的间隔,也可以这样。
select sum(datediff(second, case when @TimeIn < [In] 
then [In]
else @TimeIn
end,
case when @TimeOut < [Out]
then @TimeOut
else [Out]
end))
from YourTable
where [In] <= @TimeOut and
[Out] >= @TimeIn

关于sql-server - SQL Server 选择日期范围的语句?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6674859/

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