需要有关SQL查询的帮助,从句点季度表中选择日期范围

Saa*_*ail 2 t-sql sql-server date range period

我有一个名为Periods的表,看起来像这样

PeriodID | PeriodYear | PeriodQuarter

7 | 2009 | 1

8 | 2009 | 2

9 | 2009 | 3

10 | 2009 | 4

11 | 2010 | 1

12 | 2010 | 2

表中的每一行代表一年中四个季度中的一个(如3个月的学期).例如,第一行代表2009年第1期(即日期范围2009年1月1日至2009年3月31日).

现在,我需要编写一个查询,从上表中选择行/句点,其中句点出现在2个日期范围之间,如下面的伪代码所示.

select *
from Periods
where Period is between @startDate and @endDate
Run Code Online (Sandbox Code Playgroud)

该查询将在名为dbo.GetPeriodsFromDateRange的表值函数内使用,而@startDate和@endDate是函数的参数.

我陷入困境,无法弄清楚如何做到这一点.请帮忙.这适用于T-SQL(MS SQL Server 2000/2005)

SQL*_*ace 6

尝试

select *
from Periods
where  dateadd(qq,PeriodQuarter-1,dateadd(yy,PeriodYear -1900,0)) 
between @startDate and @endDate
Run Code Online (Sandbox Code Playgroud)