source

ORA-01810: 포맷 코드가 2회 표시됨

gigabyte 2023. 2. 14. 21:26
반응형

ORA-01810: 포맷 코드가 2회 표시됨

다음 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', 'yyymmdd hh:mm:ss')

두 가지 점에서 틀렸습니다.

1. 잘못된 형식 코드

반복했습니다.MM포맷 마스크를 두 번 누릅니다. MM월과MI 단위입니다.

듀얼에서 TO_TIMESTamp('20151206 00:00:00', 'yyymmdd hh:mm:ss')를 선택합니다.듀얼에서 TO_TIMESTamp('20151206 00:00:00', 'yyymmdd hh:mm:ss')를 선택합니다.*1행 오류:ORA-01810: 포맷 코드가 2회 표시됨

2. 잘못된 시간 부분

00:00:00ORA-018490이 될없기 때문에1 ~ 12 사이여야 합니다

듀얼에서 TO_TIMESTamp('20151206 00:00:00', 'yyymmdd hh:mi:ss')를 선택합니다.듀얼에서 TO_TIMESTamp('20151206 00:00:00', 'yyymmdd hh:mi:ss')를 선택합니다.*1행 오류: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

를 사용하였습니다.mm코드를 2회 포맷하다TO_TIMESTAMP('20151206 00:00:00', 'yyyymmdd hh:mm:ss')

MM한 달 동안
MI분량이다
당신은 아마 그것을 사용하려고 했을 것이다.YYYYMMDD HH:MI:SS.

자세한 내용은 날짜 형식 모델 목록을 참조하십시오.

언급URL : https://stackoverflow.com/questions/34213502/ora-01810-format-code-appears-twice

반응형