数据库基本函数——转换函数(Oracle)
一、转换函数用户操作多数据类型,在数据类型之间进行转换。
1、CHARTORWID(c)
c是一个字符串,函数将c转换为RWID数据类型。
2、CONVERT(c, dset, sset)
c为字符串,dset、sset是两个字符集,函数将字符串c由sset字符集转换为dset字符集,sset的默认设置为数据库的字符集。
3、HEXTORAW(x)
x为十六进制的字符串,函数将十六进制的x转换为RAW数据类型。
4、RAWTOHEX(x)
x是RAW数据类型字符串,函数将RAW数据类型转换为十六进制的数据类型。
5、ROWIDTOCHAR()
函数将ROWID数据类型转换为CHAR数据类型。
6、TO_CHAR(x, fmt)
x是一个date或number数据类型,函数将x转换成fmt指定格式的CHAR数据类型,如果x为日期nlsparm=NLS_DATE_LANGUAGE 控制返回的月份和日期所使用的语言。如果x为数字nlsparm=NLS_NUMBERIC_CHARACTERS 用类指定小数位和千分位的分隔符,以及货币符,参考详见
。
7、TO_DATE(c, fmt)
c是字符串,fmt表示一个特殊格式的字符串,返回按照fmt指定的格式的c,参考详见
。
8、TO_MULTI_BYTE(c)
c表示字符串,函数将c的单字节字符转换成多字节字符。
9、TO_NUMBER(c, fmt)
c表示字符串,fmt表示一个特殊格式的字符串,函数返回值按照fmt指定的格式显示。
10、TO_SINGLE_BYTE()
将字符串c的多字节转换成等价的单字节字符。该函数仅当数据库字符集同时包含单字节和多字节时才使用。
11. UTL_RAW.CAST_TO_RAW
该函数按照缺省字符集(一般为GB2312),将VARCHAR2字符串转换为RAW。
12. UTL_RAW.CAST_TO_VARCHAR2
该函数按照缺省字符集合(一般为GB2312),将RAW转换为VARCHAR2。
常用之日期格式
12
13
日期格式 說明
14
------------------------------------
15
YYYY/MM/DD -- 年/月/日
16
YYYY -- 年(4位)
17
YYY -- 年(3位)
18
YY -- 年(2位)
19
MM -- 月份
20
DD -- 日期
21
D -- 星期
22
-- 星期日 = 1 星期一 = 2 星期二 = 3
23
-- 星期三 = 4 星期四 = 5 星期五 = 6 星期六 = 7
24
25
DDD -- 一年之第幾天
26
WW -- 一年之第幾週
27
W -- 一月之第幾週
28
YYYY/MM/DD HH24:MI:SS -- 年/月/日 時(24小時制):分:秒
29
YYYY/MM/DD HH:MI:SS -- 年/月/日 時(非24小時制):分:秒
30
J -- Julian day,Bc 4712/01/01 為1
31
RR/MM/DD -- 公元2000問題
32
-- 00-49 = 下世紀;50-99 = 本世紀
33
ex.
34
select
to_char(sysdate,
'YYYY/MM/DD'
)
FROM
DUAL;
-- 2007/09/20
35
select
to_char(sysdate,
'YYYY'
)
FROM
DUAL;
-- 2007
36
select
to_char(sysdate,
'YYY'
)
FROM
DUAL;
-- 007
37
select
to_char(sysdate,
'YY'
)
FROM
DUAL;
-- 07
38
select
to_char(sysdate,
'MM'
)
FROM
DUAL;
-- 09
39
select
to_char(sysdate,
'DD'
)
FROM
DUAL;
-- 20
40
select
to_char(sysdate,
'D'
)
FROM
DUAL;
-- 5
41
select
to_char(sysdate,
'DDD'
)
FROM
DUAL;
-- 263
42
select
to_char(sysdate,
'WW'
)
FROM
DUAL;
-- 38
43
select
to_char(sysdate,
'W'
)
FROM
DUAL;
-- 3
44
select
to_char(sysdate,
'YYYY/MM/DD HH24:MI:SS'
)
FROM
DUAL;
-- 2007/09/20 15:24:13
45
select
to_char(sysdate,
'YYYY/MM/DD HH:MI:SS'
)
FROM
DUAL;
-- 2007/09/20 03:25:23
46
select
to_char(sysdate,
'J'
)
FROM
DUAL;
-- 2454364
47
select
to_char(sysdate,
'RR/MM/DD'
)
FROM
DUAL;
-- 07/09/20
1 楼
sgq0085
2011-11-21
现在用的最多的函数是decode,case when
2 楼
liuzhenye
2011-11-22
sgq0085 写道
现在用的最多的函数是decode,case when
昨天看了下Merge的用法,感觉蛮不错的……