[Oracle]単一関数-変換関数
TO NUMBER(文字値)
文字値を数値に変換して返される関数.
文字値が数値形式の文字でない場合、エラーが発生します.
--TO_NUMBER(문자값): 강제 형변환이 일어난다.
--비교 컬럼의 자료형이 숫자형인 경우 비교값이 문자값이면 숫자값으로 변환하여 비교
SELECT EMPNO,ENAME,SAL FROM EMP WHERE EMPNO=TO_NUMBER('7839');
TO NUMBERの無効化
自動変換が発生します.
比較欄の資料型が数値型、比較値が文字値の場合、自動的に数値値に変換して比較します.
--자동으로 형변환
SELECT EMPNO,ENAME,SAL FROM EMP WHERE EMPNO='7839';
文字値を計算すると、自動的に数値値に変換されて演算処理されます.SELECT 100+200 FROM DUAL;
SELECT '100'+'200' FROM DUAL;--위와 결과 같음
TO DATE(文字値)
文字値を日付値に変換して返される関数.
文字値がパターンに適した日付フォーマットでない場合、エラーが発生します.
デフォルトの日付モード:RR/MM/DD
--TO_DATE(문자값) : 강제 형변환이 일어난다.
--비교 컬럼의 자료형이 날짜형인 경우 비교값이 문자값이면 날짜값으로 변환하여 비교
SELECT EMPNO,ENAME,HIREDATE FROM EMP WHERE HIREDATE=TO_DATE('82/01/23');
TO DATEを無効にする
自動変換が発生します.
比較欄の資料型が日付型の場合、比較値が文字値の場合、自動的に日付値に変換して比較します.
--날짜값은 [YYYY-MM-DD] 패턴으로도 표현 가능하다.
SELECT EMPNO,ENAME,HIREDATE FROM EMP WHERE HIREDATE='1982-01-23';
TO DATE(文字値、モード文字)
TO DATE関数のモード文字を使用すると、文字値を必要なモードフォーマットに変換できます.
SELECT EMPNO,ENAME,HIREDATE FROM EMP
WHERE HIREDATE=TO_DATE('01-23-1982','MM-DD-YYYY');
文字値を日付値に変換して演算
SELECT EMPNO,ENAME,HIREDATE,TO_DATE('2000-01-01')-HIREDATE
FROM EMP WHERE EMPNO=7844;
TO CHAR({数値値|日付値},パターン文字)
数値または日付値を必要なパターンの文字値に変換することによって返される関数.
日付パターン文字
YYYY(年)、RR(年)、MM(月)、DD(日)、HH 24(時間)、HH 12(時間)、AM(午前)、PM(午後)、MI(分)、SS(秒)
SELECT TO_CHAR(SYSDATE,'YYYY-MM-DD HH24:MI:SS') FROM DUAL;
日付値を必要なパターンの文字値に変換して比較できます
SELECT EMPNO,ENAME,HIREDATE FROM EMP
WHERE TO_CHAR(HIREDATE,'YYYY')='1981';
ディジタルモード文字
9(数値またはスペース)、0(数値)、L(通貨記号)、$(ドル)
SELECT 1000000000,TO_CHAR(1000000000,'9,999,999,990') FROM DUAL;
パターン文字が欠けている場合は、#で表します.
SELECT 10000000000,TO_CHAR(10000000000,'9,999,999,990') FROM DUAL;
Reference
この問題について([Oracle]単一関数-変換関数), 我々は、より多くの情報をここで見つけました https://velog.io/@jcrs0907/Oracle-function-conversionテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol