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

PeriodID |期间|季度季度

7 | 2009 | 1个

8 | 2009 | 2

9 | 2009 | 3

10 | 2009 | 4

11 | 2010 | 1个

12 | 2010 | 2

表格中的每一行代表一年四个季度中的一个(例如每三个月上学一次)。例如。第一行代表2009年的期间1(即日期范围为2009年1月1日至2009年3月31日)。

现在,我需要编写一个查询,该查询从上表中选择行/时段,其中的时间段按照以下伪代码在2个日期范围之间发生。

select *
from Periods
where Period is between @startDate and @endDate


该查询将在名为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

关于sql-server - 需要有关SQL查询的帮助,请从期间季度表中选择日期范围,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/3193886/

10-13 02:17