0

すべての製品が1年で期限切れになると想定します

2ヶ月で期限切れになる製品をリストアップする方法は?

table product
--------------------------------

food    | ManufacturedDate| 
--------------------------------
apple   | 12-nov-11  
orange  | 12-jan-12  
pear    | 12-jan-12  
milk    | 12-nov-11
mango   | 12-nov-11  

出力

orange  | 12-jan-12
pear    | 12-jan-12 
4

2 に答える 2

1

あなたのデータによると、洋ナシとオレンジ以外の他のものは今日期限切れになるので、今日期限切れを除外し、2か月以内に期限切れになるものを含めると仮定します。

SQL> select food, manufacturedate, add_months(manufacturedate,12) expiry_date from product where add_months(manufacturedate, 12) <= add_months(trunc(sysdate), 2) and add_months(manufacturedate, 12) > trunc(sysdate);

FOOD        MANUFACTU EXPIRY_DA
--------------- --------- ---------
orange      12-JAN-12 12-JAN-13
pear        12-JAN-12 12-JAN-13

または、よりインデックスに適した配置方法(列側の関数を削除):

SQL> select food, manufacturedate, add_months(manufacturedate,12) expiry_date from product where manufacturedate <= add_months(trunc(sysdate), -10) and manufacturedate > add_months(trunc(sysdate), -12);

FOOD        MANUFACTU EXPIRY_DA
--------------- --------- ---------
orange      12-JAN-12 12-JAN-13
pear        12-JAN-12 12-JAN-13
于 2012-11-12T14:50:21.677 に答える
0

試す:

select * 
from product
where add_months( trunc(ManufacturedDate), 12 ) >= trunc(SYSDATE)
and add_months( trunc(ManufacturedDate), 12) <= add_months(trunc(SYSDATE), 2);
于 2012-11-12T14:45:27.437 に答える