在SQL Server 中擷取過去7 天的資料
從SQL 中高效取得過去7 天的資料的任務伺服器表出現在許多資料管理場景中。其中一種情況涉及使用 Pentaho 將資料從名為「A」的 SQL Server 表載入到 MySQL 表中。為了確保準確性和相關性,有必要對資料進行過濾,以便僅檢索最近 7 天的資料。
在給定的上下文中,SQL Server 表「A」中的「CreatedDate」欄位被定義為「日期時間」資料類型。然而,在MySQL表中,對應的欄位「created_on」被定義為「timestamp」資料類型。需要注意的是,這些資料類型在表示形式和精度方面略有差異。
使用者提供的初始查詢嘗試使用以下語句選擇所需的資料:
SELECT id, NewsHeadline as news_headline, NewsText as news_text, state, CreatedDate as created_on FROM News WHERE CreatedDate BETWEEN GETDATE()-7 AND GETDATE() order by createddate DESC
但是,此查詢僅擷取到 5 天的資料。為了修正此問題並準確捕獲過去 7 天的數據,我們需要對查詢進行輕微調整。
這是一個修改後的查詢,它將正確選擇所需的資料:
SELECT id, NewsHeadline as news_headline, NewsText as news_text, state CreatedDate as created_on FROM News WHERE CreatedDate >= DATEADD(day,-7, GETDATE())
在此修改後的查詢中,我們使用DATEADD 函數從目前日期減去7天,並取得表示過去7 天期間開始的日期值。透過將其指定為日期範圍的下限,我們確保查詢檢索過去 7 天內的所有資料。
以上是如何使用 DATEADD 函數擷取 SQL Server 中過去 7 天的資料?的詳細內容。更多資訊請關注PHP中文網其他相關文章!