日期:2014-05-16  浏览次数:20472 次

trunc用法小结

这段时间要统计上个月的漫游,呼转数据。要用到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