Oracle SQL変換関数-CAST、TO CHAR、TO DATE、TO NUMBER
へんかんかんすう
一時的にで定義するデータ型を変換し、 を返す. CAST、TO NUMBER、TO DATE、TO CHAR
1)拡張ASタイプ(CAST) 「expr」と定義されたデータまたは列の値を「タイプ」(一時) に変換します.「タイプ」は、Oracleで使用可能なデータ型 です.
使用例)文字列cを日付 に明示的に変換「fmt」は、TO CHARで使用されるフォーマット文字列と同じである.ただし、 では無視または誤ったフォーマット文字列(日付タイプと一致しません)
使用例)カート表で2005年6月の日付で販売資料を調べてください.
Aliasは日付(前8日、後5回)、数量合計、金額合計(数量*単価)で、日付順に出力しますに変換可能な文字列cを数値形式の「fmt」形式 に変換する.「fmt」は、数値に変換可能なフォーマット文字列(9,0,.)である. のみ使用可能
例)2005年5月7日生成CART番号
一時的に
1)拡張ASタイプ(CAST)
使用例)
SELECT PROD_ID,
PROD_NAME,
PROD_COST,
CAST(PROD_PRICE AS VARCHAR2(10))--왼쪽정렬 ->문자열
FROM PROD
WHERE PROD_COST>=100000;
3) TO_DATE(c[,fmt])使用例)カート表で2005年6月の日付で販売資料を調べてください.
Aliasは日付(前8日、後5回)、数量合計、金額合計(数量*単価)で、日付順に出力します
SELECT TO_DATE(SUBSTR(A.CART_NO,1,8),'YYYY-MM-DD') AS 날짜,
-- TO_CHAR(TO_DATE(SUBSTR(A.CART_NO,1,8)),'YYYY-MM-DD') AS 날짜,
SUM(A.CART_QTY) AS 수량합계,
SUM(A.CART_QTY*B.PROD_PRICE) AS 금액합계
FROM CART A, PROD B
WHERE A.CART_PROD=B.PROD_ID
AND TO_DATE(SUBSTR(A.CART_NO,1,8)) BETWEEN TO_DATE('20050601')
AND TO_DATE('20050630')
GROUP BY TO_DATE(SUBSTR(A.CART_NO,1,8),'YYYY-MM-DD')
-- GROUP BY SUBSTR(A.CART_NO,1,8)
ORDER BY 1;
例)現在のカート番号の生成DECLARE
V_CNT NUMBER:=0;
V_DATE CHAR(8):=TO_CHAR(SYSDATE,'YYYYMMDD');
V_CART_NO CHAR(13);
BEGIN
SELECT COUNT(*) INTO V_CNT
FROM CART
WHERE CART_NO LIKE V_DATE||'%';
IF V_CNT=0 THEN
V_CART_NO:=V_DATE||TRIM(TO_CHAR(1,'00000'));
ELSE
SELECT MAX(CART_NO)+1 INTO V_CART_NO
FROM CART
WHERE CART_NO LIKE V_DATE||'%';
END IF;
DBMS_OUTPUT.PUT_LINE('CART번호: '||V_CART_NO);
END;
SELECT TO_CHAR(SYSDATE,'YYYYMMDD')
-- TO_DATE는 문자열을 날짜로 바꿈. SYSDATE는 이미 날짜라 안됨.
-- SELECT TO_DATE('20210924','YYYYMMDD')는 가능.
TO_DATE는 출력을위한 포맷이아닌 연산을 위한 포맷
-- TO_DATE를 쓸때는 YYYYMMDD 형식 쓸것.
FROM DUAL;
4) TO_NUMBER(c[,fmt])例)2005年5月7日生成CART番号
SELECT '20050507'||
TRIM(TO_CHAR(MAX(TO_NUMBER(SUBSTR(CART_NO,9)))+1,
'00000'))
-- 오라클 내부적 결함으로 공백생겨서 TRIM써줘야함.
FROM CART
WHERE CART_NO LIKE '20050507%';
Reference
この問題について(Oracle SQL変換関数-CAST、TO CHAR、TO DATE、TO NUMBER), 我々は、より多くの情報をここで見つけました https://velog.io/@vgo_dongv/Oracle-SQL-변환함수-CAST-TOCHARTODATETONUMBERテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol