TO_DATE( '20160101' YYMMDD)とTO_DATE( '20160104'、YYMMDD)がある場合、この出力を受け取りたいと考えています。Oracleは2つの日付の間に文字列として書式を設定しました
20160101
20160102
20160103
20160104
PL/SQLを使用せずにこれを達成する方法はありますか?
ありがとうございます!
TO_DATE( '20160101' YYMMDD)とTO_DATE( '20160104'、YYMMDD)がある場合、この出力を受け取りたいと考えています。Oracleは2つの日付の間に文字列として書式を設定しました
20160101
20160102
20160103
20160104
PL/SQLを使用せずにこれを達成する方法はありますか?
ありがとうございます!
to_date()
のフォーマットマスクも一重引用符で囲む必要があります。
出力を文字列形式で出力するには、同じ形式のマスクを使用してto_char()
を適用する必要があります。
select to_char(to_date('20160101', 'YYYYMMDD') + level - 1, 'YYYYMMDD') as dt
from dual
connect by level <= 1 + to_date('20160104', 'YYYYMMDD') - to_date('20160101', 'YYYYMMDD')
;
DT
--------
20160101
20160102
20160103
20160104
SELECT DATE '2016-01-01' + LEVEL - 1
FROM DUAL
CONNECT BY LEVEL <= DATE '2016-01-04' - DATE '2016-01-01' + 1;
は答えてくれてありがとう、私は同じ日付フォーマットを必要とする:「20160102」など。Chrix1387 @ない日付 – Chrix1387
は、それからちょうど ''文字列をフォーマットするために 'TO_CHAR(DATEVALUE、format_mask)を使用し、および/またはTO_DATE(stringvalue、format_mask) 'を使って文字列から日付を取得します。 – MT0
'connect by level'はこれを行う正しい方法です。別のフォーマットが必要な場合は@ Chrix1387を使用して結果を 'to_char(mydate、 'RRRRMMDD')' – Plirkee
はい私は英語とイタリア語の日付の間に書式を間違っていました。とにかく、それは完璧に動作しますありがとう! – Chrix1387