首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在SQL Server中确定一个dateTime范围是否与另一个重叠

如何在SQL Server中确定一个dateTime范围是否与另一个重叠
EN

Stack Overflow用户
提问于 2011-02-15 18:48:51
回答 1查看 1.5K关注 0票数 0

我们有eg。下表

代码语言:javascript
复制
| ID | startDateTime       | endDateTime         |
+----+---------------------+---------------------|
|  1 | 2010-01-01 10:30:00 | 2010-01-01 11:00:00 |
|  2 | 2010-01-01 10:30:00 | 2010-01-01 11:30:00 |
|  3 | 2010-01-01 11:00:00 | 2010-01-01 11:30:00 |
|  4 | 2010-01-01 11:00:00 | 2010-01-01 12:00:00 |
|  5 | 2010-01-01 11:30:00 | 2010-01-01 12:00:00 |
|  6 | 2010-01-01 10:30:00 | 2010-01-01 12:00:00 |

我会的,例如。查询条件:

代码语言:javascript
复制
@startDateTime 2010-01-01 11:00:00
@endDateTime 2010-01-01 11:30:00

我想要得到以下ID: 2,3,4,6

我的大脑很古怪,无法做出正确的陈述...

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-02-15 18:52:48

你可以这样做

代码语言:javascript
复制
declare @T table (ID int, startDateTime datetime, endDateTime datetime)

insert into @T values
(  1 , '2010-01-01 10:30:00' , '2010-01-01 11:00:00'),
(  2 , '2010-01-01 10:30:00' , '2010-01-01 11:30:00'),
(  3 , '2010-01-01 11:00:00' , '2010-01-01 11:30:00'),
(  4 , '2010-01-01 11:00:00' , '2010-01-01 12:00:00'),
(  5 , '2010-01-01 11:30:00' , '2010-01-01 12:00:00')

declare @startDateTime datetime
declare @endDateTime datetime


set @startDateTime = '2010-01-01 11:00:00'
set @endDateTime = '2010-01-01 11:30:00'

select *
from @T
where
  startDateTime < @endDateTime and
  endDateTime > @startDateTime
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5002689

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档