簡體   English   中英

如何獲取SQL服務器上個月的記錄?

[英]How to get the records of last month in SQL Server?

我想根據 SQL 服務器中的表 [Sales],變量“SoldDate”獲取上個月的記錄。

比如今天是29/09/2021,我想獲取01/08/2021-31/08/2021的數據

“SoldDate”變量的格式為 2018-04-11 00:00:00.000。

非常感謝您的幫助:我不知道如何讓它工作:(

您可以使用eomonth()

SELECT DATEADD(DAY, 1, EOMONTH(SoldDate, -2)) AS StartDate, EOMONTH(SoldDate, -1) AS EndDate

搜索索引表的最佳方法是計算您需要的日期范圍,然后對其進行過濾。 您可以為此使用DATEADDEOMONTH 請注意,由於您有時間組件,因此不能只使用EOMONTH

SELECT *
FROM YourTable
WHERE SoldDate >= DATEADD(day, 1, EOMONTH(GETDATE(), -2))
  AND SoldDate <  DATEADD(day, 1, EOMONTH(GETDATE(), -1))
  • EOMONTH給你月末,第二個參數表示要移動多少個月。
  • 注意正確使用半開間隔>= AND < ,這可以正確處理時間分量。

暫無
暫無

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

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