oracle简单学习总结(三)――函数(二)

2014-11-24 15:21:28 · 作者: · 浏览: 1
(按周四舍五入)
trunc
对日期按指定方式进行截断
trunc(to_date('06-2 月-03'),'YEAR')
trunc(to_date('06-2 月-03'),'MONTH')
trunc(to_date('06-2 月-03'),'DAY')
01-1 月-03
01-2 月-03
02-2 月-03
(按周截断
五、日期转换格式字符
代 码
代表的格式
例 子
AM、PM
上午、下午
08 AM
D
数字表示的星期(1~7)
1,2,3,4,5,6,7
DD
数字表示月中的日期(1~31)
1,2,3,…,31
MM
两位数的月份
01,02,…,12
Y、YY、YYY、YYYY
年份的后几位
3,03,003,2003
RR
解决Y2K 问题的年度转换
DY
简写的星期名
MON,TUE,FRI,…
DAY
全拼的星期名
MONDAY,TUESDAY,…
MON
简写的月份名
JAN,FEB,MAR,…
MONTH
全拼的月份名
JANUARY,FEBRUARY,…
HH、HH12
12小时制的小时(1~12)
1,2,3,…,12
HH24
24 小时制的小时(0~23)
0,1,2,…,23
MI
分(0~59)
0,1,2,…,59
SS
秒(0~59)
0,1,2,…,59
,./-;:
原样显示的标点符号
'TEXT'
引号中的文本原样显示
TE
sql: SELECT TO_CHAR(sysdate,'YYYY-MM-DD HH24:MI:SS AM DY') FROM dual;
\
sql:SELECT TO_CHAR(sysdate,'YYYY" 年"MM" 月"DD" 日"')FROM dual;
\
六、转换函数
函 数
功 能
实 例
结 果
To_char
转换成字符串类型
To_char(1234.5, '$9999.9')
$1234.5
To_date
转换成日期类型
To_date('1980-01-01', 'yyyy-mm-dd')
01-1 月-80
To_number
转换成数值类型
To_number('1234.5')
1234.5
说明:Oracle可以自动根据具体情况进行如下的转换:
(1) 字符串到数值。(2) 字符串到日期。(3) 数值到字符串。(4)日期到字符串。
sql:SELECT SYSDATE,to_char(SYSDATE,'YYyysp') FROM dual;
\
七、数值转换
代 码
代表的格式
例 子
9
代表一位数字,如果是正数,前面是空格,如果是负数,前面是-号
9999
0
代表一位数字,在相应的位置上如果没有数字则出现0
0000
,
逗号,用作组分隔符
99,999
.
小数点,分隔整数和小数
999.9
$
$货币符号
$999.9
L
本地货币符号
L999.99
FM
去掉前后的空格
FM999.99
EEEE
科学计数法
9.9EEEE
S
负数符号 放在开头
S999.9
sql:SELECT TO_CHAR(123.45,'0000.00'), TO_CHAR(12345,'L9.9EEEE'), TO_CHAR(12345,'L9,9999') ,TO_CHAR(12345,'L9,9') FROM dual;
\
说明:如果实际位数超过指定位数,则会填充为#号
八、其他常用函数
函 数
功 能
实 例
结 果
nvl
空值转换函数
nvl(null, '空')
decode
实现分支功能
decode(1,1, '男', 2, '女')
userenv
返回环境信息
userenv('LANGUAGE')
SIMPLIFIEDCHINESE_CHINA.ZHS16GBK
greatest
返回参数的最大值
greatest(20,35,18,9)
35
least
返回参数的最小值
least(20,35,18,9)
9
说明:字符串的比较原则是,依次转换为ASCII码,先比较第一位,如果相同,则继续比较第二位,依此类推,直到出现大小关系
nvl例:
nvl(comm, 0):用0代替空的Comm值。
nvl(hiredate, '01-1月-97'):用1997年1月1日代替空的雇佣日期。
nvl(job, '无'):用“无”代替空的职务。
decode例:
sql:SELECT name,age,decode(age, '26', '年龄26','12','年龄12','年龄不大于10') FROM userinfor;
\
说明:如果age字段的内容为26”则返回“年龄26”,如果是“12”则返回“年龄12”。如果不是“ 26” 、“ 12” 之一, 则返回“年龄不大于10”
userenv例:
函数userenv返回用户环境信息字符串,该函数只有一个字符串类型的参数,参数的内容为如下之一的字符串,可以不区分大小写:
* ISDBA:判断会话用户的角色是否为SYSDBA,是则返回TRUE。
* INSTANCE:返回会话连接的INSTANCE标识符。
* LANGUAGE:返回语言、地区、数据库字符集信息。
* LANG:返回会话语言的ISO简称。
* TERMINAL:返回正在会话的终端或计算机的标识符。