我有一个名为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/