数据库 mysql oracle

Oracle trunc函数处理日期数字用法

oracle HTML我帮您 1年前  0次浏览
trunc(d1<,c1>) 返回日期d1所在期间(参数c1)的第一天日期

d1日期型,c1为字符型(参数),c1默认为j(即当前日期)

c1对应的参数表:

本周星期日:day或dy或d (每周顺序:日,一,二,三,四,五,六)

本月初日期:month或mon或mm或rm

本季日期:q

本年初日期:syear或year或yyyy或yyy或yy或y(多个y表示精度)

本世纪初日期:cc或scc

【返回】:日期
select sysdate from dual --当时日期

select trunc(sysdate) from dual

select trunc(sysdate,'yy') from dual; --2013-01-01 返回当年第一天
select trunc(sysdate,'dd') from dual; --2013-12-25 返回当前年月日
select trunc(sysdate,'yyyy') from dual; --2013-01-01 返回当年第一天
select trunc(sysdate,'d') from dual; --2013-12-22 (星期天)返回当前星期的第一天
select trunc(sysdate, 'hh') from dual; --2013-12-25 16:00:00 当前时间为16:55
select trunc(sysdate, 'mi') from dual; --2013-12-25 16:59:00 TRUNC()函数没有秒的精确
select trunc(sysdate,'iw') from dual; --2013-12-23 (星期天)每周一
select trunc(sysdate,'ww') from dual; --按年度1月1日的第一天为每周第一天
select trunc(sysdate,'d')+7 from dual -- 2013-12-29本周星期日
select trunc(sysdate,'dy')+7 from dual --2013-12-29 本周星期日
select trunc(sysdate,'day')+7 from dual --2013-12-29 本周星期日
select trunc(sysdate,'q') from dual--2013-10-01本季开始日期
select trunc(sysdate,'year') from dual --2013-01-01 本年开始日期
select trunc(sysdate ,'CC') from dual --2001-01-01 本世纪开始时间


TRUNC(number,num_digits)
Number 需要截尾取整的数字。
Num_digits 用于指定取整精度的数字。Num_digits 的默认值为 0。
TRUNC()函数截取时不进行四舍五入
select trunc(123.458) from dual --123
select trunc(123.458,0) from dual --123
select trunc(123.458,1) from dual --123.4
select trunc(123.458,-1) from dual --120
select trunc(123.458,-4) from dual --0
select trunc(123.458,4) from dual --123.458
select trunc(123) from dual --123
select trunc(123,1) from dual --123
select trunc(123,-1) from dual --120

发表评论