2017-04-26 146 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)