簡體   English   中英

sql中前3個月每月的月份名稱和最后日期

[英]Month Name and Last date of each month for previous 3 months in sql

我正在分析前 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 [year]
FROM R;

- -輸出

month   year
Aug     2019
Jul     2019
Jun     2019

- -預期的

month EOM_Date    year
Aug   2019-08-31  2019
Jul   2019-07-31  2019
Jun   2019-06-30  2019

您可以使用SQL Server EOMONTH()函數來計算一個月的最后一天。

考慮:

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;

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM