Oracle数据库-常用函数

一:日期函数

    Year:      
    yy two digits      两位年               显示值:07
    yyy three digits  三位年                显示值:007
    yyyy four digits  四位年                显示值:2007
    Month:      
    mm    number          两位月       显示值:11
    mon   abbreviated 字符集表示        显示值:11月,若是英文版,显示nov     
    month spelled out 字符集表示  显示值:11月,若是英文版,显示november 

    Day:      
    dd    number         当月第几天        显示值:02
    ddd    number         当年第几天        显示值:02
    dy    abbreviated 当周第几天简写    显示值:星期五,若是英文版,显示fri
    day    spelled out   当周第几天全写    显示值:星期五,若是英文版,显示friday 
   Hour:
   hh    two digits 12小时进制            显示值:01
   hh24 two digits 24小时进制             显示值:13
   Minute:
   mi    two digits 60进制                显示值:45
   Second:
   ss    two digits 60进制                显示值:25
   其它
   Q     digit         季度                 显示值:4
   WW    digit         当年第几周            显示值:44
   W    digit          当月第几周            显示值:1
--add_months:当前月份加上2月 
select add_months(sysdate,2) from dual;
--MONTHS_BETWEEN:指定日期和当前日期相差月份
Select MONTHS_BETWEEN(DATE'2015-05-01',sysdate) from dual;
--last_day:返回某个月的最后一天
select last_day(sysdate) from dual;
--next_day:返回指定日期的下一个星期日期
select next_day(sysdate,'星期日') from dual;
--EXTRACT:截取时间值函数
select extract(year  from date'2011-01-03') year from dual;
select extract(MONTH from date'2011-01-03') year from dual;
select extract(day   from date'2011-01-03') year from dual;

trunc(d1,c1) : 返回日期d1所在期间(参数c1)的第一天日期
d1日期型,c1为字符型(参数),c1默认为j(即当前日期)
本周星期日:day或dy或d (每周顺序:日,一,二,三,四,五,六)
本月初日期:month或mon或mm或rm
本季日期:q
本年初日期:syear或year或yyyy或yyy或yy或y(多个y表示精度)
本世纪初日期:cc或scc

SELECT TRUNC(Sysdate) FROM dual; --显示格式2016/5/9
select trunc(sysdate ,'DD') from dual; --今天日期
select trunc(sysdate,'d')+7 from dual; --本周星期日
select trunc(sysdate,'dy')+7 from dual;  --本周星期日
select trunc(sysdate,'day')+7 from dual; --本周星期日
select trunc(sysdate,'q') from dual;--本季开始日期
select trunc(sysdate,'month') from dual; --本月开始日期
select trunc(sysdate ,'mm') from dual; --本月开始日期
select trunc(sysdate,'year') from dual;  --本年开始日期
select trunc(sysdate ,'yyyy') from dual; --本年开始日期
select trunc(sysdate ,'HH24') from dual; --本小时开始时间
select trunc(sysdate ,'MI') from dual; --本分钟开始时间
select trunc(sysdate ,'CC') from dual; --本世纪开始时间
select trunc(LAST_DAY(sysdate),'dd') from dual; --本月最后一天

round(10.2356,2):函数可以对数字按指定保留小数位数四舍五入,这个函数还可以对日期四舍五入

select round(sysdate,'yyyy') from dual 四舍五入到年
select round(sysdate,'mm') from dual 四舍五入到月
select round(sysdate,'dd') from dual 四舍五入到日
select round(sysdate,'hh') from dual 四舍五入到小时
select round(sysdate,'mi') from dual 四舍五入到分钟

二:数字函数

--取整函数(ceil 向上取整,floor 向下取整)
select ceil(66.6) N1,floor(66.6) N2 from dual;
--取幂(power) 和 求平方根(sqrt)
select power(3,2) N1,sqrt(9) N2 from dual;
--求余数
select mod(7,5) from dual;
--返回固定小数位数 (round:四舍五入,trunc:直接截断)
select round(66.667,2) N1,trunc(66.667,2) N2 from dual;
--数字格式化
select to_char(12345.123,'99999999.9900') from dual;--结果为12345.1230
select to_char(0.123,'99999999.9900') from dual;--结果为 .123
select to_char(0.123,'99999990.9900') from dual;--结果为 0.123
--返回值的符号(正数返回为1,负数为-1)
select sign(-32),sign(293),sign(0) from dual;

三:字符函数

--initcap:首字符大写
Select initcap(‘hello’) from dual;--显示Hello
--lower:将字符串转化为小写的格式
Select lower('KEVIN') from dual;  --显示kevin
--upper:将字符串转化为大写的格式
Select lower('kevin') from dual;  --显示KEVIN
--length(char):返回字符串的长度。
SELECT length('KEVIN') FROM  dual;--显示5
--REPLACE、translate:字符串替换
select translate('adc-efg','adc','efg') from dual; --显示:efg-efg
select REPLACE('adc-efg','adc','efg') from dual;  --显示:efg-efg

--substr(char, m, n):截取字符串的子串,n代表取n个字符的意思,不是代表取到第n个
select substr('abcdefg',3,2) from dual;  --显示cd
--字符串拼接
select concat('ke','vin'),'ke'||'vin' from dual;

四: 转换函数

  1. TO_CHAR
    yy:两位数字的年份 2004–>04
    yyyy:四位数字的年份 2004年
    mm:两位数字的月份 8 月–>08
    dd:两位数字的天 30 号–>30
    hh24: 8点–>20
    hh12:8点–>08
    mi、ss–>显示分钟\秒
    9:显示数字,并忽略前面0
    0:显示数字,如位数不足,则用0补齐
    .:在指定位置显示小数点
    ,:在指定位置显示逗号
    $:在数字前加美元
    L:在数字前面加本地货币符号
    C:在数字前面加国际货币符号
    G:在指定位置显示组分隔符、
    D:在指定位置显示小数点符号(.)
SELECT to_char(DATE'2016-01-01','yyyy-MM-dd') FROM dual;

TO_DATE

SELECT to_date('2016-01-01','yyyy-MM-dd') FROM dual;

TO_NUMBER

select to_number(0.25,'9.00') a from dual;
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

EngineerForSoul

你的鼓励是我孜孜不倦的动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值