首頁 >資料庫 >mysql教程 >如何從SQL Server表中有效率地檢索上個月的記錄?

如何從SQL Server表中有效率地檢索上個月的記錄?

Linda Hamilton
Linda Hamilton原創
2025-01-02 16:29:42179瀏覽

How to Efficiently Retrieve Last Month's Records from a SQL Server Table?

在SQL Server 中擷取上個月的記錄

問題:

從資料庫表格[member] 取得記錄根據date_created屬於上個月

解決方案:

為了高效、準確地檢索上個月的記錄,我們需要避免某些陷阱,並採用以下方法:

  1. 使用專屬範圍過濾:

    不要使用包含範圍(例如 BETWEEN 運算符),而是使用帶有 > 的排除範圍過濾且

  2. 計算月份邊界:

    匯出使用適當的日期函數計算上個月和當月的開始。這可以避免由包含上限範圍引起的潛在問題。

    • 上個月開始:DATEADD(month, -1, @startOfCurrentMonth)
    • 當月開始:DATEADD(month) , DATEDIFF(月, 0, CURRENT_TIMESTAMP), 0)
  3. 範例查詢:

    DECLARE @startOfCurrentMonth DATETIME
    SET @startOfCurrentMonth = DATEADD(month, DATEDIFF(month, 0, CURRENT_TIMESTAMP), 0)
    
    SELECT *
    FROM Member
    WHERE date_created >= DATEADD(month, -1, @startOfCurrentMonth)
      AND date_created < @startOfCurrentMonth

此方法防止使用索引、資料損壞,並在指定時間範圍內檢索正確的記錄。

以上是如何從SQL Server表中有效率地檢索上個月的記錄?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn