programing

Oracle에서 날짜에 선행 0을 추가하려면 어떻게 해야 합니까?

elecom 2023. 8. 11. 21:30
반응형

Oracle에서 날짜에 선행 0을 추가하려면 어떻게 해야 합니까?

숫자가 두 자리 미만이면 선행 0을 추가하고 두 숫자를 공백 없이 하나로 결합해야 합니다.

내 시도:

select ( extract (year from t.Dt)
         || to_char(extract (month from t.Dt),'09')
         || to_char(extract (day from t.Dt),'09') ) as dayid 
  from ATM_FACTS t;

결과:

enter image description here

그래서, 제 문제는 어떻게 하면 월별과 월별 사이의 공간을 제거할 수 있을까 하는 것입니다.사용한

select ( extract (year from t.Dt)
         || to_number(to_char(extract (month from t.Dt),'09'))
         || to_number(to_char(extract (day from t.Dt),'09')) ) as dayid 
  from ATM_FACTS t;

하지만 선두의 0은 사라집니다.

선행 0을 추가하려는 것처럼 보이지 않고, 원하는 방식으로 날짜를 문자로 변환하지 않는 것처럼 보입니다.TO_CHAR()의 datetime 형식 모델은 매우 강력하므로 최대한 활용하십시오.

select to_char(dt, 'yyyymmdd') as dayid
  from atm_facts

실제로 질문에 답하려면 TO_CHAR()이 있는 숫자 형식 모델을 사용하여 선행 항목으로 패딩할 수 있습니다.

예를 들어, 다음과 같은 반환이 있습니다.006

select to_char(6, 'fm009') from dual;

모델 한정자 형식을 사용할 수 있습니다.fm필요한 경우 선행 공백을 제거하기 위해 위의 문서에 언급되어 있습니다.

T.D.가 데이트야?하나의 단일 형식으로 포맷할 수 있습니다.to_char문:

to_char(t.Dt, 'YYYYMMDD')

언급URL : https://stackoverflow.com/questions/16585608/how-can-i-add-leading-zeros-to-dates-in-oracle

반응형