数据库函数

查询当前数据库系统时间(sysdate)

round(列|值|表达式,小数的有效位数) 表示四舍五入

trunc(列|值|表达式,小数的有效位数) 直接截取

mod(列|值,列|值) 求余数

abs(列|值) 求绝对值

length(列|值|表达式);求长度

upper(列|值|表达式);全部转大写字母

lower(列|值|表达式);全部转小写字母

initcap(列|值|表达式);每个单词首字母大写

lpad(列|值,宽度,填充字符);从左边补不足宽度个填充字符

rpad(列|值,宽度,填充字符);从右边补不足宽度个填充字符

ltrim(列|值,截取字符);从左边截取字符

rtrim(列|值,截取字符);从右边截取字符

replace(列|值,被置换的字符,置换的字符);置换指定字符

translate(参数一,参数二,参数三);转换指定字符

    参数一:要处理的内容,列|值

    参数二:要检索的内容

    参数三:检索后,与检索内容一一对应替换的内容(如果无替换值,则全部去掉)

    检索内容在替换内容中没有的去掉

instr(‘值,列’,'要查询的字符',从哪里开始,查询第几个出现的字符)查找指定字符窜中所在的位置下标

substr(列|值,指定位置下标,保留几位)

decode() 类似一个三目运算符 (表达式? a:b)只有布尔类型,如果表达式的值为true,则输出a,否则输出b;比较第一和第二个参数,如果相等取第三个参数,如果不相等取第四个参数。

case when 可以把它看成switch功能;

    select name "部门名",

    case region_id

    when 1 then '北美'

    when 2 then '南美'

    when 3 then '中东'

    when 4 then '亚洲'

    when 5 then '欧洲'

    else '未知区域'

    end 区域名

    from s_dept;

case后面是否出现列名,取决于when后面条件是否出现比较列

如果when后面已经出现列名,那case后面务必不能写列名,

如果when后面是值,那么必须在case后面指定列名,否则无法确定所给的值的真正含义

--------------------------------日期函数--------------------------------

oracle默认的日期格式为 dd-MON-yy

select sysdate from daul;

sysdate 当前日期

months_between(date1,date2) 2个日期之间的月数

to_date:将数字串转化成date格式

add_months(date1,n) 在date1的基础上加n个月

--------------------------------转换函数--------------------------------

to_date() 把字符串改为日期

to_number(‘数字字符串’,'999,999,999.999') 把字符串换成数字后面的为容器,必须大约等于前面的数字字符串的大小

to_char 把数字或日期转换为字符串;可用于截取日期字符串中的年,月,日

把数字格式化为字符窜的时候可以用一些符号

原文地址:https://www.cnblogs.com/wangqun1234/p/7779703.html