programing

to_char 함수를 사용하여 문자열로 구문 분석할 때 Oracle에서 일 및 월 값에서 선행 0을 제거하는 방법은 무엇입니까?

telecom 2023. 6. 29. 19:47
반응형

to_char 함수를 사용하여 문자열로 구문 분석할 때 Oracle에서 일 및 월 값에서 선행 0을 제거하는 방법은 무엇입니까?

선택 문에서 일 및 월 값 앞에 선행 0이 없는 날짜를 검색하려고 합니다.다음 쿼리를 실행하면

 select to_char(sysdate, 'dd.mm.yyyy') from dual;

결과적으로 저는 2014년 3월 21일을 얻을 것입니다.게다가, 만약 오늘이, 예를 들어, 2014년 3월 7일이었다면, 나는 2014년 7월 3일을 받았을 것입니다.어떻게 하면 이 선행 0을 없앨 수 있을까요?

select   to_char(sysdate,'DD.MM.YY') -- Without Fill Mode
,        to_char(sysdate-20,'fmDD.fmMM.YY')  -- With Fill Mode, 20 days ago
  from dual;

돌아온다

21.03.14    | 1.3.14

FM 채우기 모드.

TO_CHAR 함수의 날짜 형식 요소에서 이 수식어는 이후 문자 요소(예: MONG)의 공백을 억제하고 날짜 형식 모델에서 후속 숫자 요소(예: MI)의 선행 0을 억제합니다.FM을 사용하지 않으면 문자 요소의 결과는 항상 고정된 길이로 공백으로 오른쪽 패딩되고 숫자 요소에 대해 선행 0이 항상 반환됩니다.빈 패딩을 억제하는 FM을 사용하면 반환 값의 길이가 달라질 수 있습니다.

사용해 보십시오.

select to_char(to_date('20-oct-2000'),'fmmm/dd/fmrr') from dual

위 쿼리는 Oracle의 일 및 월 값에서 선행 0을 제거합니다.

이것은 우아함과는 거리가 멀지만 효과가 있습니다.

select to_number(to_char(sysdate,'dd')) || '.' || to_number(to_char(sysdate,'mm')) || '.' || to_number(to_char(sysdate,'yyyy')) from dual

기본적으로 날짜의 각 부분 번호로 변환합니다.

언급URL : https://stackoverflow.com/questions/22552498/how-to-remove-leading-zeroes-from-day-and-month-values-in-oracle-when-parsing-t

반응형