【发布时间】:2010-07-07 10:29:13
【问题描述】:
我有一个名为 Periods 的表格,看起来像这样
期间 ID | 周期年 | PeriodQuarter
7 | 2009 | 1
8 | 2009 | 2
9 | 2009 | 3
10 | 2009 | 4
11 | 2010 | 1
12 | 2010 | 2
表格中的每一行代表一年中 4 个季度中的一个(如 3 个月的学期)。例如。第一行代表 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)
【问题讨论】:
-
Saajid Ismail,你看到我下面的评论,你选择的答案会强制扫描吗?此外,它会更占用 CPU,因为它必须在整个表中的每一行上评估一个表达式......
标签: sql-server tsql date range period