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)
尝试
select *
from Periods
where dateadd(qq,PeriodQuarter-1,dateadd(yy,PeriodYear -1900,0))
between @startDate and @endDate
Run Code Online (Sandbox Code Playgroud)