2017-04-26 21 views
0

SELL_TABLE增加一些屬性提取數據具有這些列:SQL ORACLE - 在最近180天的

  • LEGACY_ID
  • PRODUCT_ID
  • CUSTOMER_ID
  • DATE
  • 出售

我必須提取所有由排序的行其中SOLD> 1,之後插入了過去180天。

DATE列定義爲VARCHAR,所以我需要首先將其內容轉換爲日期時間。

我該怎麼做?

這是我寫的查詢:

select CUSTOMER_ID as Customer, PRODUCT_ID as Product 
    from SELL_TABLE 
    where SOLD > 0 and DATE >= DATEADD(day, -180, getdate()) 
    group by CUSTOMER_ID, PRODUCT_ID 
    order by CUSTOMER_ID; 
+0

存儲在固定格式的日期?如果是這樣,哪一個? – Aleksej

+0

@Aleksej是 - > 20160208(Y,M,D) – Dygne

回答

1

您可能需要一個where條件與to_datesysdate像下面這樣:

where to_date(yourDateColumn, 'yyyymmdd') >= trunc(sysdate) - 180 
    and ... 
0

您可以使用

TO_DATE

函數將您的varchar列轉換爲Date類型。

另外,可以更換

DATEADD

功能與簡單的動作:

trunc(sysdate) >= trunc (sysdate - 180)