1

私が実行すると:

select to_date('substr(21120319,3)','YYMMDD') 
from dual 

エラーが発生します:

日付が有効な範囲 -4719 から +9999 にありません。

しかし、もしそうなら:

select to_date('120319','YYMMDD') 
from dual

私のクエリは正常に実行され、19-MAR-12 という出力が得られます。

このエラーの理由は何ですか。これを理解するのを手伝ってください。

御時間ありがとうございます。

4

3 に答える 3

4

文字列リテラルから substr を削除する必要があります。

select to_date(substr('21120319', 3),'YYMMDD') 
from dual ;
于 2013-03-19T14:27:57.780 に答える
0
select to_date('substr(21120319,3)','YYMMDD')  from dual ;

現在substr(21120319,3)も文字列の一部です

に変更します

  select to_date(substr('21120319',3),'YYMMDD')  from dual ;
于 2013-03-19T14:29:18.543 に答える
0

あなたはおそらく必要です

select to_date('21120319','YYYYMMDD') 
from dual 

substr は必要ありません。間違った世紀が返されます。21120319 は、2012 年 3 月 19 日ではなく、2112 年 3 月 19 日を返す必要があります。

于 2013-03-19T14:30:39.570 に答える