ORA-01810: код формата появляется дважды
почему 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'
)
2 ответов
TO_TIMESTAMP('20151206 00:00:00', 'yyyymmdd hh: mm:ss')
это неправильно в двух отношениях:
1. Неверный формат кода
вы повторили MM
маска формат в два раза. MM
is месяц и MI
is минут.
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 * ERROR at line 1: ORA-01810: format code appears twice
2. Неверная временная часть
00:00:00
неправильно, как бы это бросить Ора-01849 с час не может быть нулевым, он должен быть между 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 * ERROR at line 1: ORA-01849: hour must be between 1 and 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
вы использовали mm
формат кода дважды в TO_TIMESTAMP('20151206 00:00:00', 'yyyymmdd hh:mm:ss')
MM
на месяцMI
на минуту
Вы, вероятно, хотели использовать YYYYMMDD HH:MI:SS
.
пожалуйста, смотрите список дата в формате модели для получения дополнительной информации.