我正在尝试创建一个仅显示当前季度数据的T-SQL查询。
我的数据表如下所示。
NAME,DATE
Alice,1-1-2013
Bob,12-1-2013
查尔斯,2013年12月15日
在我运行报告的任何时候,我都希望能够只看到我当前所在季度的数据。所以,如果今天是12-18-14,那么当我运行报告时,我'我希望只看到日期为10-1-14到12-31-14的条目,所以
Bob,12-1-2013
查尔斯,2013年12月15日
我欢迎任何提示。我已经进行了彻底的搜索,但我没有足够的经验来使用CASE语句拼凑部分答案。
感谢。 MC
答案 0 :(得分:0)
如果我理解你正在尝试做什么,我认为你不需要CASE声明:
SELECT *
FROM YourTable
WHERE Date >= DATEADD(qq,DATEDIFF(qq,0,GETDATE()),0)
AND Date < DATEADD(dd,1,DATEADD(qq,DATEDIFF(qq,-1,GETDATE()),-1))
答案 1 :(得分:0)
试试这个
SELECT *
FROM Table
WHERE Year(Date) = Year(GETDATE())
AND DATENAME(qq,Date) = DATENAME(qq,GETDATE())
答案 2 :(得分:0)
获得理想结果的另一种简单方法。
SELECT *
FROM TableName
WHERE DATEPART(QUARTER,DateColumnName) = DATEPART(QUARTER,GETDATE())
AND YEAR(DateColumnName) = YEAR(GETDATE())