0

この挿入コマンドを実行しようとしています

INSERT INTO DW_BATCH_HIST   
(DW_BATCH_HIST.BATCH_NBR, DW_BATCH_HIST.TRANS_START_DATE, DW_BATCH_HIST.BATCH_STATUS) 
VALUES(82,to_date('27-SEPT-2012 11:00:00.000','DD-MON-YYYY hh:mi:ss'), 1)

このエラーが発生します:

ORA-01841 :(通年)年は-4713から+9999の間でなければならず、0であってはなりません。

その年は有効な年なので、なぜこのエラーが発生するのかわかりません。私は何が欠けていますか?

4

3 に答える 3

2

マスクの部分の月は、MONあなたが持っているように4文字ではなく、3文字の略語でなければなりません.

編集:他の人が指摘したように、ミリ秒も削除する必要があります。

'27-SEP-2012 11:00:00'
于 2012-09-27T14:40:48.883 に答える
0

Oracle (および他のほとんどのデータベース) で日付/時刻の書式設定を安全に行いたい場合は、SQL 標準のタイムスタンプ リテラル形式を使用します。あなたの場合、書いてください

TIMESTAMP '2012-09-27 11:00:00.000'

それができない場合は、次のように日付を修正してください。

to_date('27-SEP-2012 11:00:00','DD-MON-YYYY hh:mi:ss')
-- removed the T from SEPT, as well as the millisecond part
于 2012-09-27T14:43:16.910 に答える
0

「SEPT」を「SEP」に変更し、時間値からミリ秒を削除します。

于 2012-09-27T14:44:18.767 に答える