[解決済み] ORA-01810:フォーマットコードが2回表示されます。
2022-03-08 05:38:17
質問
以下のSQLはなぜORA-01810エラーを発生させるのですか?このエラーを調査したところ、日付の挿入ごとに異なる日付形式を使用しています。
INSERT INTO bag_grte_clm
(
schd_dprt_ldt,
arr_trpn_stn_cd,
bkg_crtn_gdt,
sbmt_bag_grte_clm_dt,
bag_grte_clm_stt_cd,
lst_updt_gts,
bag_grte_clm_gts,
dprt_trpn_stn_cd
)
VALUES (
TO_DATE('2015/12/06', 'yyyy/mm/dd'),
'YUL',
TO_DATE('2015-11-15', 'yyyy-mm-dd'),
TO_DATE('120615', 'MMDDYY'),
'DENIAL',
(current_timestamp),
TO_TIMESTAMP('20151206 00:00:00', 'yyyymmdd hh:mm:ss'),
'ATL'
)
どのように解決するのですか?
TO_TIMESTAMP('20151206 00:00:00', 'yyyymmdd hh:mm:ss')
2つの意味で間違っている。
1. フォーマットコードが正しくない
を繰り返しましたね。
MM
フォーマットのマスクを2回使用します。
MM
でございます
月
と
MI
でございます
議事録
.
SQL> SELECT TO_TIMESTAMP('20151206 00:00:00', 'yyyymmdd hh:mm:ss') FROM dual; SELECT TO_TIMESTAMP('20151206 00:00:00', 'yyyymmdd hh:mm:ss') FROM dual * 1 行目で ERROR が発生しました。 ORA-01810:フォーマットコードが2回表示されます。
2. 不適切な時間部分
00:00:00
を投げることになるので、間違っています。
ORA-01849
というのは
hourは0にはできないので、1から12の間でなければなりません。
.
SQL> SELECT TO_TIMESTAMP('20151206 00:00:00', 'yyyymmdd hh:mi:ss') FROM dual.SELECT TO_TIMESTAMP('20151206 00:00:00', 'yyyymmdd hh:mi:ss') FROM dual; SELECT TO_TIMESTAMP('20151206 00:00:00', 'yyyymmdd hh:mi:ss')FROMデュアル * 1 行目で ERROR が発生しました。 ORA-01849: 時間は 1 から 12 の間でなければなりません。
正しい方法は
24時間
の書式を残すか、あるいは
時間部分
となり、デフォルトは
12 AM
.
例えば
24時間表示形式。
SQL> SELECT TO_TIMESTAMP('20151206 00:00:00', 'yyyymmdd hh24:mi:ss') my_tmstamp FROM dual;
MY_TMSTAMP
---------------------------------------------------------------------------
06-DEC-15 12.00.00.000000000 AM
時間部分がない。
SQL> SELECT TO_TIMESTAMP('20151206', 'yyyymmdd') my_tmstamp FROM dual;
MY_TMSTAMP
-----------------------------------------------------------------------
06-DEC-15 12.00.00.000000000 AM
関連
-
[解決済み】''付近の構文が正しくない
-
[解決済み】一括読み込みデータ変換エラー(指定されたコードページに対して型の不一致または無効な文字)1行目4列目(年)について)
-
[解決済み】SQL Serverは「集約関数やサブクエリを含む式に対して集約関数を実行できない」が、Sybaseはできる。
-
[解決済み] pg_restoreです。[archiver] 入力ファイルはテキスト形式のダンプであるように見えます。psql を使用してください。
-
[解決済み] Presto SQL ピボッティング(言葉は悪いですが)データ
-
[解決済み] Oracle(LiveSQL)のSQL [重複]について
-
[解決済み] ORA-00918: 列があいまいに定義されています」を解決する方法
-
[解決済み] SQLサーバーで文字列をsmalldatetimeデータ型に変換する際、変換に失敗しました(静的値を除く)。
-
[解決済み] SQLで複数のGROUP BYを使用する場合とは?
-
[解決済み] JavaScriptの日付の書式設定方法
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】参照するテーブルにプライマリーキーやキャンディデートキーがない
-
[解決済み】Teradata - 計算中に数値のオーバーフローが発生しました。
-
[解決済み】INTERSECTとINNER JOINは根本的に違うのか?[重複している]
-
[解決済み] WHERE x IN (5) vs WHERE x = 5 ...なぜINを使うのか?
-
[解決済み] ORA-12801: 並列クエリサーバー P004 および ORA-01555 でシグナルされたエラー: スナップショットが古すぎる。
-
[解決済み] Varchar は Sum 演算子では無効です。
-
[解決済み] ORA-00920: 無効な関係演算子
-
[解決済み] 集計を行わずに行から列へピボット移動する
-
[解決済み] 列名または提供された値の数がテーブル定義と一致しません。
-
[解決済み] 時間を時間単位や10分単位でグループ化する方法