[英]how to get data for last calender week in redshift
我有一個下面的查詢,我運行它來提取過去 7 天的材料移動。 目的是獲取某些報告的最后一個日歷周的數據。
select
*
From
redshift
where
posting_date between CURRENT_DATE - 7 and CURRENT_DATE - 1
這意味着我需要在每個星期一運行查詢以獲取前一周的數據。 有時我在星期一或其假期/銀行假期太忙了。 在這種情況下,我需要更改查詢或通過 SAP 提取數據。
問題:是否有用於 redshift 的 function 提取最后一個日歷周的數據,而不管我何時運行查詢?
我已經找到了以下解決方案
SELECT id FROM table1
WHERE YEARWEEK(date) = YEARWEEK(NOW() - INTERVAL 1 WEEK)
但這似乎不適用於紅移 sql
非常感謝你的幫助。
Redshift 提供DATE_TRUNC('week', datestamp)
datestamp
給定任何日期戳值,無論是日期還是日期時間,它都會返回前一個星期日的日期。
所以這可能對你有用。 它過濾從上一個星期日開始的行,直到但不包括最后一個星期日,因此得到一個完整的星期。
SELECT id
FROM table1
WHERE date >= DATE_TRUNC('week', NOW()) - INTERVAL 1 WEEK
AND date < DATE_TRUNC('week', NOW())
專業提示:您花在學習 DBMS 的日期/時間函數上的每一分鍾都會為您節省一個小時的編程時間。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.