日付から何ヶ月分を引いて、別の日付を生成するには?の設定値を使用して日付のリストを返します
- するvar date_A = 24-06-2016
- するvar date_B = 24-01-2016
- VARのx = 5
してください私は、xの値を使用する方法(回数date_Aの値からdate_Bの値を計算するには?
日付から何ヶ月分を引いて、別の日付を生成するには?の設定値を使用して日付のリストを返します
してください私は、xの値を使用する方法(回数date_Aの値からdate_Bの値を計算するには?
あなたがthe add_months()
function使用することができます:あなたが行うことができます(それはあなたが持っているものかどうかわからない)SQL * PlusまたはSQL Developerのバインド変数で
select add_months(to_date('24-06-2016', 'DD-MM-YYYY'), -5) from dual;
ADD_MONTHS(TO_DATE('24-06-2016','DD-MM-YYYY'),-6)
-------------------------------------------------
2015-12-24
を:
var date_a varchar2(10);
var date_b varchar2(10);
var x number;
exec :date_a := '24-06-2016';
exec :x := 5;
exec :date_b := to_char(add_months(to_date(:date_a, 'DD-MM-YYYY'), -:x), 'DD-MM-YYYY');
print date_b
DATE_B
------
24-01-2016
あなたがそれぞれをしたい場合過去5か月、現在の月には、ダミーを使用できます。hierarchical query:
select add_months(to_date('24-06-2016', 'DD-MM-YYYY'), 1-level)
from dual
connect by level <= 6;
ADD_MONTHS(TO_DATE('24-06-2016','DD-MM-YYYY'),1-LEVEL)
------------------------------------------------------
2016-06-24
2016-05-24
2016-04-24
2016-03-24
2016-02-24
2016-01-24
select add_months(to_date('24-06-2016', 'DD-MM-YYYY'), 1-level)
from dual
connect by add_months(to_date('24-06-2016', 'DD-MM-YYYY'), 1-level)
>= to_date('24-01-2016', 'DD-MM-YYYY');
ADD_MONTHS(TO_DATE('24-06-2016','DD-MM-YYYY'),1-LEVEL)
------------------------------------------------------
2016-06-24
2016-05-24
2016-04-24
2016-03-24
2016-02-24
2016-01-24
またはご希望の場合はconnect by
構文の代わりにrecursive subquery factoringを使用することができ、あなたは上だ:それとも、実際には開始日と終了日ではなく、終了日とx
を持っている場合、あなたが行うことができます11gR2以上:
with r (dt) as (
select to_date('24-06-2016', 'DD-MM-YYYY') from dual
union all
select add_months(r.dt, -1) from r
where add_months(r.dt, -1) >= to_date('24-01-2016', 'DD-MM-YYYY')
)
select r.dt
from r
order by r.dt desc;
これらのクエリの日付または上限にもバインド変数を使用できます。
返されたいリスト
24-06-16
24-05-16
24-04-16
24-03-16
24-02-16 –
@ OluAkin - それはあなたの期待された出力をquエスティオン;現時点では、あなたは単一の日付がほしいと言います。質問を編集して、必要なものを正確に説明してください。 –
ありがとうございます。それはうまくいく(y) –
あなたはdate_A
からx
ヶ月を減算したい場合は、それはです:
add_months(date_A, x * -1)
編集:アレックスはそれに私を打ち、そして新しい要件がある:(
私は明確にするために、導入文を追加しました –