sql中前3个月的月份名称和每个月的最后日期
我正在分析前3个月(不包括当前月份)的客户交易,我想获得前3个月的月份名称以及每3个月的最后日期sql中前3个月的月份名称和每个月的最后日期,sql,sql-server,Sql,Sql Server,我正在分析前3个月(不包括当前月份)的客户交易,我想获得前3个月的月份名称以及每3个月的最后日期 WITH R(N) AS ( SELECT 1 UNION ALL SELECT N+1 FROM R WHERE N < 3 ) SELECT LEFT(DATENAME(MONTH,DATEADD(MONTH,-N,GETDATE())),3) AS [month], DATEPART(YEAR,DATEADD(MONTH,-N,GETDATE())) AS [
WITH R(N) AS (
SELECT 1 UNION ALL SELECT N+1 FROM R WHERE N < 3
)
SELECT
LEFT(DATENAME(MONTH,DATEADD(MONTH,-N,GETDATE())),3) AS [month],
DATEPART(YEAR,DATEADD(MONTH,-N,GETDATE())) AS [year]
FROM R;
--期望
month EOM_Date year
Aug 2019-08-31 2019
Jul 2019-07-31 2019
Jun 2019-06-30 2019
您可以使用来计算一个月的最后一天
考虑:
WITH R(N) AS (
SELECT 1 UNION ALL SELECT N+1 FROM R WHERE N < 3
)
SELECT
LEFT(DATENAME(MONTH,DATEADD(MONTH,-N,GETDATE())),3) AS [month],
EOMONTH(GETDATE(), -N) AS [EOM_DATE],
DATEPART(YEAR,DATEADD(MONTH,-N,GETDATE())) AS [year]
FROM R;
对于您似乎正在使用的sql server,您可以使用您正在使用的dbms?使用了几种特定于产品的功能。欢迎@EveLitha!如果我的回答正确回答了你的问题,请点击绿色的复选标记。。。谢谢
WITH R(N) AS (
SELECT 1 UNION ALL SELECT N+1 FROM R WHERE N < 3
)
SELECT
LEFT(DATENAME(MONTH,DATEADD(MONTH,-N,GETDATE())),3) AS [month],
EOMONTH(GETDATE(), -N) AS [EOM_DATE],
DATEPART(YEAR,DATEADD(MONTH,-N,GETDATE())) AS [year]
FROM R;