Sql server 2012 MS SQL-查找日期只属于给定的期间开始日期的期间

Sql server 2012 MS SQL-查找日期只属于给定的期间开始日期的期间,sql-server-2012,Sql Server 2012,长期读者,第一次海报。 我做了搜索,但找不到与此匹配的任何其他问题。我所能找到的只是有两个日期栏进行比较。如果这个问题以前确实得到过回答,我很抱歉创建了一个重复的帖子 我得到了一个有3列的表格: Period (int) - Name (varchar) - StartDate (datetime) 1 Period 1 2016-01-04 00:00:00.000 2 Period 2 2016-02-01 00:00:00.000 3 Period 3 20

长期读者,第一次海报。 我做了搜索,但找不到与此匹配的任何其他问题。我所能找到的只是有两个日期栏进行比较。如果这个问题以前确实得到过回答,我很抱歉创建了一个重复的帖子

我得到了一个有3列的表格:

Period  (int) - Name (varchar) - StartDate (datetime)
1   Period 1    2016-01-04 00:00:00.000
2   Period 2    2016-02-01 00:00:00.000
3   Period 3    2016-02-29 00:00:00.000
4   Period 4    2016-03-28 00:00:00.000
5   Period 5    2016-04-25 00:00:00.000
6   Period 6    2016-05-23 00:00:00.000
不幸的是,我没有修改表以添加第二个日期列来包含每个期间的结束日期的选项。每个期间的结束日期为所列起始日期之前的日期

我将被传递一个日期,需要找到该日期所属的时间段

有人能提供一些指导吗?

试试这个查询:

SELECT TOP 1 *
FROM Table
WHERE StartDate >= @GivenDate
ORDER BY StartDate

根据上面Tab Alleman的提示/评论,我构建了以下内容:

select top 1 period from PeriodDetail
where StartDate <= getdate()
order by startdate desc
从PeriodDetail中选择前1个期间

在何处开始日期,以便选择小于日期参数的最高日期?这暗示够了吗?前1名约会?脸掌谢谢你Tab Alleman。