【发布时间】:2015-04-20 21:52:57
【问题描述】:
我需要在 SSMS 上的 SQL 中创建一个函数来获取与某个日期范围(从一年的 9-1 到明年的 8-31)相关的列的总和。问题是这个日期范围每年都会改变。
我知道如何用 SQL 编码:
Create View DateRangeRDView AS
Select RD1, RD2, RD3, RD4
From SomeTable
Where PerformanceDate BETWEEN '20140901' AND '20150831'
但是当视图中的日期范围需要更改为BETWEEN '20150901' AND '20160831'时,我必须创建一个全新的视图。
我也知道GetDate() 获取当前日期,但我不确定如何实施它来帮助这里。有没有这样做GetDate()将能够检查它是否过去09-01而不声明年份然后如果它过去09-01SELECT between 09-01-CURRENTYEAR and 08-31-NEXTYEAR或者它在09-01SELECT between 09-01-LASTYEAR and 08-31-CURRENTYEAR之前?这将始终与此特定视图/查询中的当前年份有关
【问题讨论】:
-
何时将日期更改为 2015-2016?
-
您使用的是哪个 DBMS? (“SQL”不是 DBMS 产品的名称——它是一种查询语言)
-
听起来像财政年度数据。在这种情况下,带有适当字段的日历表将极大地简化此任务。
-
SSMS 是 DBMS,我会编辑问题
标签: sql datetime subquery date-range getdate