单行函数分为五种类型:字符函数、数值函数、日期函数、转换函数、通用函数。
1.字符函数:
对于输入的字符转换为需要转为的字符或数值。
upper()大写
--小写字母转为大写字母
--对于表指定的字符转大写
--对于指定列字符转大写
lower() 大写字母转小写
--大写字母转小写
--对指定的值转小写
INITCAP()
第一个字母转为大写
--表一列首字母转为大写
concat() 和 ||
拼接字符串
--将两个字符拼接起来
--使用concat()
--使用 ||
---拼接实例
select 列 || 列 from employees;
select concat(列,列) from employees;
substr() 字符串截取
用法:substr(字符串,第几位开始截取,截取的长度)。
在Oracle数据库中substr的截取的开始点在第0位和第1位都是一样的效果。在实际应用程序开发中需要注意。
---从第一位字符开始截取两位字符
---例:截取英文名的三位,正序截取和倒序截取,倒序使用负号 -
从前往后截取
从后往前截取
length() 字符串长度
--计算字符串长度
replace() 替换
用法:replace(原字符,要替换的原字符或单个字符,替换后的字符)
--把指定的字符替换
2.数值函数
round() 四舍五入
用法:round(数值,截取长度)
--默认在小数第一位四舍五入
--四舍五入到截取小数点后三位小数
--整数位四舍五入,指定截取位置的参数为负数
trunc() 截断小数
用法:trunc(数值,截取长度)
截取掉小数位,不进行四舍五入过程。
--截取的小数之后的位置
--指定截取长度,但不会四舍五入
---截取的位数是负数
mod() 取余
用法:mod(除数,被除数)
3.日期函数
sysdate 查询当前日期
日期-数字=日期
日期+数字=日期
日期-日期=数字(天数)
--求入职天数
可以使用trunc截断小数取整
last_date( ) 本月的最后的一天
add_months( )
语法:add_months(日期字段,数值)
数值是查询从当天日期开始,查询前几个月的今天用负数,查询后几个月的用正数。
---查询表入职日期加俩月
months_between( )
语法:months_between( 对比的日期,指定日期),
指定的日期小于对比的日期查询结果为正数,反之为负数。
查询对比日期与指定日期相差月数
--查询s_date入职日期到2020年相差几个月
next_day( )
语法:next_day(指定日期,指定日期下周的第一天)
current_date
返回当前查询窗口的日期
current_timestamp()
返回的日期和时间是根据时区转换过的日期
拓展:
使用current_timestamp时候,在数据发生变化时,字段将会更新为系统时间
dbtimezone
返回时区
extract()
查找日期字段值
localtimestamp
返回会话中的日期
Y或YY或YYY或YYYY, M 或MM , D 或DD
返回日期最后几位
syear转换
日期转换
Q
Q 返回当前日期所在的季度
RM
返回罗马数字月份
Month
返回当前月份
WW
返回当前处于第几周
W
查询当前处于本月第几周
DDD
查询处于当年第几天
DD
查询处于当月第几天
D
查询处于本周第几天
DY
查找周内第几日
HH或HH24
小时,HH默认12小时制,HH24为24小时制。
MI
分钟
--查询当前第几分钟
SS
秒
4.转换函数
to_char() 转换成字符串
日期格式转换
to_number () 字符转换成数字
to_date() 字符串转换成日期
年:YYYY, 月:MM , 日 :DD,时:HH24 , 分:MI ,秒 :SS
5.通用函数
NVL() 函数,数值出现null(空)情况 。
decode()函数
类似用法: if....else或 case……when ……then ……end
用法:decode(列/表达式,值1,结果1,值2,结果2……)