Sql 获取报告的日期范围
我正在创建一份报告,其中我希望日期范围为“2015年6月或运行本月报告前36个月,以较晚者为准” 我的剧本从2016年6月开始,一个月后就可以拿回来36本了。如下Sql 获取报告的日期范围,sql,date,datetime,Sql,Date,Datetime,我正在创建一份报告,其中我希望日期范围为“2015年6月或运行本月报告前36个月,以较晚者为准” 我的剧本从2016年6月开始,一个月后就可以拿回来36本了。如下 SELECT (QUOTENAME(RTRIM(LTRIM(cast(datename(month, [dates]) as char(15))))+',' + RTRIM(LTRIM(cast(year([dates]) as char(20))))) + ',') FROM efoxsfc.dbo.FTX_FA_Calender
SELECT (QUOTENAME(RTRIM(LTRIM(cast(datename(month, [dates]) as char(15))))+',' + RTRIM(LTRIM(cast(year([dates]) as char(20))))) + ',') FROM efoxsfc.dbo.FTX_FA_Calender
WHERE 1=1
AND CAST(dates AS DATETIME) >= DATEADD(mm, -35 ,DATEADD(m, DATEDIFF(m, 0,GETDATE()), 0))
AND dates <= DATEADD(m, DATEDIFF(m, 0,GETDATE()), 0)
SELECT (QUOTENAME(RTRIM(LTRIM(cast(datename(month, [dates]) as char(15))))+',' + RTRIM(LTRIM(cast(year([dates]) as char(20))))) + ',') FROM efoxsfc.dbo.FTX_FA_Calender
WHERE 1=1
AND CAST(dates AS DATETIME) >= DATEADD(mm, -5 ,DATEADD(m, DATEDIFF(m, 0,GETDATE()), 0))
AND dates <= DATEADD(m, DATEDIFF(m, 0,GETDATE()), 0)
从efoxfc.dbo.FTX_FA_日历中选择(QUOTENAME(RTRIM)(LTRIM(cast(datename(month,[dates])作为字符(15)))+,'+RTRIM(LTRIM(cast(year([dates])作为字符(20‘‘‘‘‘‘))+,')
其中1=1
和CAST(日期为DATETIME)>=DATEADD(mm,-35,DATEADD(m,DATEDIFF(m,0,GETDATE()),0))
和dates=DATEADD(mm,-5,DATEADD(m,DATEDIFF(m,0,GETDATE()),0))
和日期从efoxfc.dbo.FTX_日历中选择(QUOTENAME(RTRIM)(LTRIM(cast(datename(month,[dates])作为字符(15)))+,'+RTRIM(LTRIM(cast(year([dates])作为字符(20))+,'))
其中1=1
和CAST(日期为DATETIME)>=DATEADD(mm,-35,DATEADD(m,DATEDIFF(m,0,GETDATE()),0))
和dates=DATEADD(mm,-5,DATEADD(m,DATEDIFF(m,0,GETDATE()),0))
和dates=DATEADD(mm,-35,DATEADD(m,DATEDIFF(m,0,GETDATE()),0))
或
CAST(日期为DATETIME)>=DATEADD(mm,-5,DATEADD(m,DATEDIFF(m,0,GETDATE()),0))
)
和日期AUNION
或UNION ALL
,如果您试图将这些数据作为单个查询的结果返回
UNION ALL
将返回所有结果,而UNION
将对数据集执行DISTINCT
这将进行更多讨论。使用UNION ALL或UNION请选择正确答案(如果有),否则请提供未回答的后续信息。我正在查找数据范围“2015年6月或运行当月报告前36个月,以较晚者为准”,例如,如果我今天运行报告,它将显示从6月开始的日期,截至2015年6月,2015年超过了2012年11月(36个月前)。现在考虑我在2018月2015号运行同样的报告,所以它将显示我11月2015,因为11月1日超过2015年6月。这对你有意义吗?
SELECT (QUOTENAME(RTRIM(LTRIM(cast(datename(month, [dates]) as char(15))))+',' + RTRIM(LTRIM(cast(year([dates]) as char(20))))) + ',') FROM efoxsfc.dbo.FTX_FA_Calender
WHERE 1=1
AND CAST(dates AS DATETIME) >= DATEADD(mm, -35 ,DATEADD(m, DATEDIFF(m, 0,GETDATE()), 0))
AND dates <= DATEADD(m, DATEDIFF(m, 0,GETDATE()), 0)
UNION ALL
SELECT (QUOTENAME(RTRIM(LTRIM(cast(datename(month, [dates]) as char(15))))+',' + RTRIM(LTRIM(cast(year([dates]) as char(20))))) + ',') FROM efoxsfc.dbo.FTX_FA_Calender
WHERE 1=1
AND CAST(dates AS DATETIME) >= DATEADD(mm, -5 ,DATEADD(m, DATEDIFF(m, 0,GETDATE()), 0))
AND dates <= DATEADD(m, DATEDIFF(m, 0,GETDATE()), 0)
SELECT (QUOTENAME(RTRIM(LTRIM(cast(datename(month, [dates]) as char(15))))+',' + RTRIM(LTRIM(cast(year([dates]) as char(20))))) + ',') FROM efoxsfc.dbo.FTX_FA_Calender
WHERE 1=1
AND (
CAST(dates AS DATETIME) >= DATEADD(mm, -35 ,DATEADD(m, DATEDIFF(m, 0,GETDATE()), 0))
OR
CAST(dates AS DATETIME) >= DATEADD(mm, -5 ,DATEADD(m, DATEDIFF(m, 0,GETDATE()), 0))
)
AND dates <= DATEADD(m, DATEDIFF(m, 0,GETDATE()), 0)