簡體   English   中英

如何在紅移中獲取最后一個日歷周的數據

[英]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.

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