TO_CHAR
语法:
TO_CHAR(expr[,fmt])
功能:将expr转换成字符串。
入参是可转成string的表达式;返回值是STRING。
fmt为日期类型的格式控制符,例如,yyyy/mm/dd/hh/hh12/hh24/mi/ss/ff3等,(详情请参见日期类型说明)。如果没有指定format,则默认使用当前SESSION的时间格式。
当前SESSION的时间格式可以通过如下命令设置:
--通过NLS_DATE_FORMATDATE设置DATE类型的时间格式。
ALTER SESSION SET NLS_DATE_FORMAT='format';
--通过NLS_TIMESTAMP_FORMAT设置TIMESTAMP类型的时间格式。
ALTER SESSION SET NLS_TIMESTAMP_FORMAT='format';
说明:
该函数当前仅支持对日期类型(date, timestamp)指定格式控制符。
示例:
指定格式控制符,返回当前系统时间。 SELECT to_char(sysdate, 'MON-YY-DD HH:MM:SS AM') FROM dual; TO_CHAR(SYSDATE, 'MON-YY-DD HH ------------------------------- JAN-18-07 05:01:15 AM 1 rows fetched. 设置当前SESSION的时间格式,并返回当前连接的系统时间。 --通过NLS_DATE_FORMATDATE设置时间格式。 ALTER SESSION SET NLS_DATE_FORMAT='YYYYMMDD HH24:MI:SS'; --查询当前系统时间。 SELECT TO_CHAR(sysdate) FROM DUAL; TO_CHAR(SYSDATE) ------------------------------------------------ 20181207 15:12:24 1 rows fetched. 将“01110”转换成字符串。 SELECT TO_CHAR('01110') FROM DUAL; TO_CHAR('01110') ---------------- 01110 1 rows fetched.
TO_CLOB
语法:
TO_CLOB(str)
功能:将入参转换为CLOB类型,str为待转换的类型参数。
示例:
--删除表employee。 DROP TABLE IF EXISTS employee_branch_nanjing; --创建表employee。 CREATE TABLE employee_branch_nanjing(employee_id INT NOT NULL,first_name VARCHAR(10),last_name VARCHAR(10), hire_date DATETIME,comment VARCHAR(1012)); --加入记录1。 INSERT INTO employee_branch_nanjing(employee_id,first_name,last_name,hire_date,comment) VALUES(1001,'Alice','BROWN','2017-06-20 12:00:00','excellent staff of 2018,bonus 5000¥'); --加入记录2。 INSERT INTO employee_branch_nanjing(employee_id,first_name,last_name,hire_date,comment) VALUES(1002,'BOB','Smith','2017-10-20 12:00:00','excellent manager of 2018,bonus 2000¥'); --加入记录3。 INSERT INTO employee_branch_nanjing(employee_id,first_name,last_name,hire_date,comment) VALUES(1003,'ALAN','Jones','2017-05-10 12:00:00',''); --提交事务。 COMMIT; --将字段comment的数据转换为CLOB类型。 UPDATE employee_branch_nanjing SET comment=TO_CLOB(comment); 3 rows affected.
TO_DATE
语法:
TO_DATE(expr[,fmt])
功能:将expr转换成日期类型。
fmt为转换格式,支持如下:yyyy/mm/dd/hh/hh12/hh24/mi/ss/ff3等。
入参是可转成DATE类型的字符串表达式或者数值类型(隐式转换);返回值是DATE。
示例:
SELECT TO_DATE('2018-06-28 13:14:15', 'YYYY-MM-DD HH24:MI:SS:FF') FROM DUAL; TO_DATE('2018-06-28 13:14:15', 'YYYY-MM-DD HH24:MI:SS:FF') ---------------------------------------------------------- 2018-06-28 13:14:15 1 rows fetched.
TO_NUMBER
语法:
TO_NUMBER(n[, fmt])
功能:将n转换为number类型。
入参n是可转成数值型的表达式或字符串。fmt参数可选,表示n的转换格式, 不设置时,默认转换为十进制。当前fmt支持两种固定格式,分别为:
X: 对n按16进制串进行转换, 在该格式中n只能包含16进制字符,0~9,A~F, a~f。
以XX这种格式转换时,X的个数必须大于等于前面的字符个数。
以0X这种格式转换时,n只能为0或正整数。
000.00:对n按10进制格式转换,小数点前面的数字的个数表示整数的个数,若n中整数个数超过格式中的整数个数将会报错;fmt中小数点后面的数字个数表示转换后保留的小数位数。
返回值是number。
示例1: 将123E500转换为number类型。 SELECT TO_NUMBER('123E500', 'XXXXXXX') from DUAL; TO_NUMBER('123E500', 'XXXXXXX') ---------------------------------------- 19129600 1 rows fetched. 示例2: 将123.500转换为number类型。 SELECT TO_NUMBER('123.500', '000.0000') from DUAL; TO_NUMBER('123.500', '000.0000') ---------------------------------------- 123.5 1 rows fetched. 示例3: 将00FFFFFF转换为number类型。 SELECT TO_NUMBER('00FFFFFF', '0000000X') from DUAL; ---------------------------------------- 16777215 1 rows fetched.
TO_TIMESTAMP
语法:
TO_TIMESTAMP(expr[,fmt])
功能:将expr转换成时间类型。
fmt为转换格式,支持如下:yyyy/mm/dd/hh/hh12/hh24/mi/ss/ff3等。
入参是可转成TIMESTAMP类型的字符串表达式;返回值是TIMESTAMP。
示例:
SELECT TO_TIMESTAMP('2018-06-28 13:14:15', 'YYYY-MM-DD HH24:MI:SS:FF') FROM DUAL; TO_TIMESTAMP('2018-06-28 13:14:15', 'YYYY-MM-DD HH24:MI:SS:FF') --------------------------------------------------------------- 2018-06-28 13:14:15.000000 1 rows fetched.
UNHEX
语法:
UNHEX(expr1)
功能:expr1为十六进制字符串,将十六进制字符串转化为byte字节表示的字符。
示例:
SELECT UNHEX('746869732069732061207465737420737472') FROM DUAL; UNHEX('746869732069732061207465737420737472') ---------------------------------------------------------------- this is a test str 1 rows fetched.