簡體   English   中英

如何在SQL中獲取上一年的上個月最后一天的日期?

[英]How do I get the date of the last day of the previous month in the previous year in SQL?

我正在編寫一個帶有where子句的查詢,該子句需要返回上一年的上個月的最后一天。 因此,如果我今天( 18/06/2014 )運行它,它將返回31/05/2013 如果我下個月在19/07/2014月19日運行它,它將返回30/06/2013 ,依此類推。

我可以用

select DATEADD(day,-1,DATEadd(MONTH,datediff(month,0,GETDATE()),0))

它返回上個月的最后日期,但我不知道如何調整該日期以為一年前的日期。

我可以在上述代碼的末尾添加-365,該代碼可以滿足我的要求,但不能說明account年。 盡管我不希望報告的使用時間足夠長,以至於不能引起人們的關注,但最好找到一個效果很好的解決方案(並認為可能會適用)。

任何解決方案,不勝感激。

只需在您的getdate() dateadd(YY, -1, {your code})周圍添加另一個dateadd(YY, -1, {your code}) ,可以先回溯年份,然后再查看上個月(根據下面的評論)。

select DATEADD(day,-1,DATEadd(MONTH,datediff(month,0,DATEADD(YY,-1,GETDATE())),0))

暫無
暫無

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

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