2014-05-08 29 views
1

我正在嘗試編寫一個查詢,該查詢返回已在該處超過30天的庫存中的所有產品。使用SQL中的存儲日期和系統日期

我試圖寫的查詢是這樣的..返回30天前有一個delivery_date的所有產品。

這是我迄今爲止..但我不認爲它是正確的方式。

select product_id, stock_lvl, delivery_date 
    from inventory 
    where select trunc(sysdate) - ?????? > 30 
    order by product_id; 
+0

您的日期值是「庫存」表中的一列嗎? –

+0

是的,是的。我有一個交貨日期作爲庫存表的一部分。 – StillLearningToCode

回答

3

,你可以去簡單:

select * from inventory where inv_input_dt < sysdate - 30 

這裏有優點:

  1. 您可能對inventory_input_date的指數,它可以通過DB使用。當你有一列中的某些計算它不能被使用,如「inv_input_dt - SYSDATE> 30」

  2. 「SYSDATE - 30」在表中只計算一次,與一些計算對每條記錄

相關問題