首页 > 代码库 > ORACLE函数之单行转换函数
ORACLE函数之单行转换函数
1 ASCIISTR
格式:ASCIISTR(C)
说明:将字符串C转换为ASCII字符串,即将C中的ASCII字符保留不变,但非ASCII字符则以ASCII表示返回
举例:
SQL>SELECT ASCIISTR(‘AB?CDE数据库‘) A FROM DUAL;
A
---------------------
AB?CDE\6570\636E\5E93
2 BIN_TO_NUM
格式:BIN_TO_NUM(n1,n2,n3...)
说明:每位由n1,n2,n3等组成的二进制转换为十进制
举例:
SQL>SELECT BIN_TO_NUM(1,1,1,1) A FROM DUAL;
A
----------
15
3 CAST
格式:CAST(CAS T)
说明:将表达式C转换成数据类型T。T可以是内量数据类型,也可以是程序员自定义的数据类型。前提是能够转换才可以转换
举例:
SQL>SELECT CAST(‘12345‘ AS NUMBER) A FROM DUAL;
A
----------
12345
4 DECODE
格式:DECODE(x,if 1,then 1, if 2 then 2 ,.., else z)
说明:将x与if值进行比较,如果等于if n就返回then n.否则就返回else z
举例:
SQL>SELECT DECODE(1,1,0,-1) AS A,DECODE(1,0,0,-1) AS B FROM DUAL;
A B
--------------------
0 -1
5 NUMTODSINTERVAL
格式:NUMTODSINTERVAL(N,C)
说明:把数字N转换成C指定的INTERVALDAY TO SECOND类型的数据。C的取值为DAY,HOUR,MINUTE,SECOND。C的大小写无关
举例:
SQL>SELECT SYSDATE+NUMTODSINTERVAL(10,‘DAY‘) A,SYSDATE+NUMTODSINTERVAL(10,‘HOUR‘) BFROM DUAL;
A B
-----------------------------------
2014/7/1117:20:11 2014/7/2 3:20:11
6 NUMTOYMINTERVAL
格式:NUMTODSINTERVAL(N,C)
说明:把数字N转换成C指定的INTERVALDAY TO SECOND类型的数据。C的取值为YEAR、MONTH。C的大小写无关
举例:
SQL>SELECT SYSDATE+NUMTOYMINTERVAL(10,‘YEAR‘) A,SYSDATE+NUMTOYMINTERVAL(10,‘MONTH‘)B FROM DUAL;
A B
----------------------------------------
2024/7/117:24:18 2015/5/1 17:24:18
7 TO_CHAR
格式:TO_CHAR(X[,fmt])
说明:将X按fmt格式转换成字符串。X可以是一个日期或者数字,也可以是一个字符串,fmt是一个规定了X采用何种格式转换的格式字符串
举例:
SQL>SELECT TO_CHAR(SYSDATE,‘YYYY-MM-DD‘) A,TO_CHAR(111) B FROM DUAL;
A B
-------------
2014-07-02111
8 TO_CLOB
格式:TO_CLOB(x)
说明:将LOB列中的NCLOB值或其他字符串x转换成CLOB值
举例:
SQL>SELECT TO_CLOB(‘AAAA‘) A FROM DUAL;
A
--------------------------------------------------------------------------------
AAAA
9 TO_DATE
格式:TO_DATE(C[,fmt])
说明:将符合fmt指定的特定日期格式的字符串C转换成DATE类型的数据
举例:
SQL>SELECT TO_DATE(‘2014-07-02‘,‘YYYY-MM-DD‘) A,TO_DATE(‘2014-07‘,‘YYYY-MM‘) B FROMDUAL;
A B
----------------------
2014/7/2 2014/7/1
10 TO_DSINTERVAL
格式:TO_DSINTERVAL(C)
说明:将符合特定格式的字符串C转换成INTERVALDAY TO SECOND类型的数据
举例:
SQL>SELECT SYSDATE+TO_DSINTERVAL(‘1000:00:00‘) A FROM DUAL;
A
-----------------
2014/7/128:49:39
11 TO_LOB
格式:TO_LOB(X)
说明:将LONG列中的值X转换成LOB列的值
举例:
12 TO_NUMBER
格式:TO_NUMBER(C[,fmt])
说明:将符合fmt指定的特定数字格式的字符串C转换成数字类型的数据
举例:
SQL>SELECT TO_NUMBER(‘0101‘) A FROM DUAL;
A
----------
101
13 TO_TIMESTAMP
格式:TO_TIMESTAMP(C)
说明:将字符串C转换为一个TIMESTAMP数据类型
举例:
SQL>SELECT TO_TIMESTAMP(‘2014-07-1214:10:10.12320‘, ‘YYYY-MM-dd HH24:MI:SS.FF‘) A FROM DUAL;
A
--------------------------------------------------------------------------------
12-7月-14 02.10.10.123200000下午
14 TO_TIMESTAMP_TZ
格式:TO_TIMESTAMP_TZ(C[, fmt])
说明:将符合fmt指定的特定日期格式的字符串C转换成TIMESTAMPWITH TIMEZONE类型的数据,带时区
举例:
SQL>SELECT TO_TIMESTAMP_TZ(‘2014-07-1214:10:10.12320‘, ‘YYYY-MM-dd HH24:MI:SS.FF‘) A FROM DUAL;
A
--------------------------------------------------------------------------------
12-7月-14 02.10.10.123200000下午 +08:00
15 TO_YMINTERVAL
格式:TO_YMINTERVAL(C)
说明:将符合特定格式的字符串C转换成INTERVALYEAR TO MONTH类型的数据
举例:
SQL>SELECT SYSDATE+TO_YMINTERVAL(‘01-03‘) AFROM DUAL;
A
-----------------
2015/10/29:26:45
16 TRANSLATE
格式:TRANSLATE(X,if y, then z)
说明:查看X中的每个字符,然后查看该字符在if y中是否存在。如果存在,就在if y中找到该字符的位置,然后用then z中相同位置的字符替代该字符,最后返回全部替代之后的X
举例:
SQL>SELECT TRANSLATE(‘abcdefghij‘,‘abcdef‘,‘123456‘) A FROM dual;
A
----------
123456ghij
17 UNISTR
格式:UNISTR(c)
说明:返回字符串c对应的UNICOOE字符
举例:
SQL>SELECT UNISTR(‘01-03‘) A FROM DUAL;
A
-----------------
01-03