Oracle中的trunc()函数是对时间类型或者数字进行截取操作的。
(1)trunc(Date)的用法一般有以下几种:
select sysdate from dual
select to_char(sysdate,'yyyy-mm-dd hh:mi:ss') from dual?
select trunc(sysdate,'yyyy') from dual?--当年的第一天
select trunc(sysdate,'mm') from dual?--当月的第一天
select trunc(sysdate,'dd') from dual?--当前时间(精确到天)
select trunc(sysdate,'d') from dual?--当前星期的第一天
select trunc(sysdate,'hh') from dual?--当前时间(精确到小时)
select trunc(sysdate,'mi') from dual?--当前时间(精确到分钟,没有精确到秒的)
(2)trunc(number)的用法一般有以下几种:
select trunc(12345.6,-1) from dual ?//结果是:12340,其中-1表示从小数点左边第一位截取后面全置为零
select trunc(1.23456,1) from dual ? //结果是:1.2,其中1表示从小数点左边第一位截取后面全置为零
select trunc(12345.6) from dual ? //结果是:12345,截取整数部分;
(3)获取当前时间(毫秒表示)
select (sysdate-to_date('1970-01-01 08:00:00','yyyy-mm-dd hh24:mi:ss'))*1000*3600*24 from dual