1011.Oracle内置日期和数值处理函数
1.数值函数
求绝对值函数 abs(n);
求不小于n的整数 ceiling(n);
求不大于n的最大整数 floor(n)地板,向下
(三个函数都只有一个参数)
四舍五入函数 round(数值,精度m) m为正,小数点右边保留m位进行四舍五入;m为负,小数点左边保留m个零进行四舍五入。
截取函数 trunc(数值,位数m)默认(m无)去掉小数,m为正,小数点右边保留m位;m为负,小数点左边保留m个零。
取余数函数 mod(数值,数值m)
取随机数函数 dbms_random_value(数值m,数值n)取m到n之间的随机数
大小比较 greatest(m, n) 取出最大值; least(m, n) 取出最小值
2.日期函数
日期格式设置函数
alter session set nls_date_format='yyyy-mm-dd hh24:mi:ss';
字符转日期
to_date('2016','yyyy') 不是年初,是本月年初
日期截取函数
trunc(sysdate,‘yyyy’)
日期抽取
extract(year | month | day from v_date ) 返回数值类型
extract(hour | minute | second from v_timestamp) 返回数值类型
修改日期
月份:add_months(sysdate,1)
求月末
last_day(sysdate) 会带上时分秒,不是凌晨
求下月初
trunc(last_day(sysdate))+1 加一是默认加一天
日期d后第一周指定day的日期
next_day(d,day) select next_day(sysdate,'Monday') from dual;(返回下周一的日期)
(day 格式有'Monday' 星期一 、'Tuesday' 星期二、'wednesday' 星期三、 'Thursday' 星期四、'Friday' 星期五
、'Saturday' 星期六 、'Sunday' 星期日)
日期的特殊格式:
Y或YY或YYY 年的最后一位,两位,三位 select to_char(sysdate,'YYY') from dual;
Q 季度,1-3月为第一季度 select to_char(sysdate,'Q') from dual;
MM 月份数 select to_char(sysdate,'MM') from dual;
RM 月份的罗马表示 select to_char(sysdate,'RM') from dual; IV
month 用9个字符表示的月份名(英文) select to_char((Date '2016-09-01'),'month') from dual;
ww 当年第几周 select to_char(sysdate,'ww') from dual;
w 本月第几周 select to_char(sysdate,'w') from dual;
DDD 当年第几天,一月一日为001 ,二月一日032 select to_char(sysdate,'DDD') from dual;
DD 当月第几天 select to_char(sysdate,'DD') from dual;
D 周内第几天 select to_char(sysdate,'D') from dual; 如 sunday
DY 周内第几天缩写 select to_char(sysdate,'DY') from dual; 如 sun
hh12 12小时制小时数 select to_char(sysdate,'hh12') from dual;
hh24 24小时制小时数 select to_char(sysdate,'hh24') from dual;
Mi 分钟数 select to_char(sysdate,'Mi') from dual;
ss 秒数 select to_char(sysdate,'ss') from dual;
select to_char(systimestamp,'YYYY-MM-DD HH:24:mi:ssxff') from dual;
数据类型的隐式转换(容易出错)