oracle的trunc()函数

1.格式:trunc(date,fmt)
-------------> date:为必要参数,是输入的一个日期值
-------------> fmt: 参数可忽略,指定精确哪个时间,忽略则精确到当天的零时零分零秒(时间只能精确到分钟,无法精确到秒)
1) trunc()的几种常用方法

     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,'iw')  /*当周的第二天*/  from  dual;
     select trunc(sysdate,'q')  /*当前季度的第一天*/ from  dual;
     select trunc(sysdate,'hh') /*当前的时间,精确到小时*/ from dual;

l例1:

 select   to_char(sysdate,'yyyy-mm-dd hh24:mi:ss'),to_char(trunc(sysdate),'yyyy-mm-dd hh24:mi:ss')  from dual;  
  
  TO_CHAR(SYSDATE,'YY        TO_CHAR(TRUNC(SYSDA
  --------------------------------------------------------------------------------
  2018-03-13 12:24:11        2018-03-13 00:00:00
      //sysdate的零时零分零秒相当于trunc(sysdate)
 和
 
 select trunc(sysdate,'dd')  /*当前的年月日*/   from dual;  一样
 
 TRUNC(SYSDATE,'DD')
 -------------------
 2019-03-13 00:00:00

例2:

select  trunc(sysdate-1)   /*昨天*/  from dual;
select  trunc(sysdate+1)  /*今天*/  from dual;
select  trunc(sysdate-to_date('20140302 12:32:32','yyyy-mm-dd hh24:mi:ss')) || '天'  /*相隔的天数*/ from dual;

TRUNC(SYSDATE-TO_DATE('2014030212:32:32','
------------------------------------------
1837天

2.格式:trunc(number,decimals)
-------------> number:待截取的数值
-------------> decimals:参数可忽略,指明需保留的小数点后的位数,忽略则截去所有的小数部分

  select   trunc(123.212) from dual;    123
  select   trunc(123.212,2) from dual;    123.21
  select trunc(123.212,-2)  from dual;     100
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值