日期:2014-05-16 浏览次数:20489 次
这段时间要统计上个月的漫游,呼转数据。要用到trunc这个函数。
?
trunc ( datetime [ , fmt] );
?
1,得到当年第一天
? ? select ?trunc ( datetime ,‘yy’ ) ?from dual;
? ? ?---------------------------------------------
? ? ?2012-1-1
?
2,当月第一天
? ?select ?trunc ( datetime ,‘mm’) ?from dual;
? ?--------------------------------------------------
? ? 2012-9-1
?
3,当前时间的整点,如现在是2012-9-2 15:27:12,处理后得到2012-9-20 15:00:00
?select ?trunc ( datetime ,‘hh’) ?from dual;
?--------------------------------------------------
? ? 2012-9-20 15:00:00
4,当前时间的整分,如现在是2012-9-2 15:27:12,处理后得到2012-9-20 15:00:00
?select ?trunc ( datetime ,‘mi’) ?from dual;
?--------------------------------------------------
? ? 2012-9-20 15:27:00
?
5,想得到明天的指定时间,如2012-9-21 08:21:43
select trunc (sysdate) +1 ?+ 1/24*8 + 1/(24*60)*21 + 1/(24*60*60)*43 from dual;
----------------------------------------------------------------
? ? ? ? ?2012-9-21 08:21:43
?
? ? 解释:+1 ,就是加一天
? ???+ 1/24*8, +1/24是加1/24天,也就是一个小时,再乘以8,就是8个小时;
? ? ?+ 1/(24*60)*21,1天除以24×60分;
? ? ?+ 1/(24*60*60)*43