zoukankan      html  css  js  c++  java
  • Oracle:trunc()函数简介 时间处理及数字小数位处理

    一:功能描述
      用于截取时间或者数值,返回指定的值。

    二:语法
    (1)日期处理:
        TRUNC(date,[fmt])
       date 为必要参数,是输入的一个date日期值
      fmt 参数可忽略,是日期格式,缺省时表示指定日期的0点。
    (2)数值处理:
        TRUNC(number,[decimals])
      number 为必要参数,是输入的一个number数值
      decimals 参数可忽略,是要截取的位数,缺省时表示截掉小数点后边的值。

    三:栗子
    (1)处理日期:

    --sysdate和trunc(sysdate)是不一样的 sysdate在当天的零时零分零秒等于trunc(sysdate)
    select to_char(sysdate, 'yyyy-mm-dd hh24:mi:ss'),
    to_char(trunc(sysdate), 'yyyy-mm-dd hh24:mi:ss')
    from dual t;

    --年
    select trunc(sysdate, 'yy') "当年第一天" from dual;
    select trunc(sysdate, 'yyyy') "当年第一天" from dual;
    select trunc(sysdate, 'year') "当年第一天" from dual;
    --季度
    select trunc(sysdate, 'q') "当前季度的第一天" from dual;
    select trunc(add_months(sysdate,3), 'Q') -1/24 "这个季度最后一天23点" from dual;
    --月
    select trunc(sysdate, 'mm') "当月第一天" from dual;
    select trunc(sysdate, 'month') "当月第一天" from dual;
    select trunc(last_day(sysdate)+1) "下个月第一天的0点" from dual;
    --周
    select trunc(sysdate, 'd') "本周的第一天,周日起" from dual;
    select trunc(sysdate,'day') "本周的第一天,周日起" from dual;
    select next_day(TRUNC(SYSDATE ), 'TUESDAY' ) + 12/24 "下个星期二中午12点" from dual;
    select TRUNC(LEAST(NEXT_DAY(SYSDATE, 'SATURDAY'), NEXT_DAY(SYSDATE, 'SUNDAY'))) + (660+10)/(2460) "下个周六日早上6点10分" from dual;
    --天
    select trunc(sysdate+1) "今晚12点" from dual;
    select trunc(sysdate+1) + (860+30)/(2460) "明天早上8点30分" from dual;
    --时
    select trunc(sysdate, 'hh')"当前小时" from dual;
    select trunc(sysdate, 'hh24') "当前小时" from dual;
    --分
    select trunc(sysdate, 'mi') "当前分钟" from dual;
    select trunc(sysdate,'mi') + 10/ (24*60) "10分钟后的时间"from dual;
    --秒
    select sysdate + 10/(24 * 60 * 60) "10秒钟后" from dual;--trunc没有精确到秒的精度
     
    (2)处理数值:

    --123.56,将小数点右边指定位数后面的截去;
    select trunc(123.567,2) from dual;
    --100,第二个参数可以为负数,表示将小数点左边指定位数后面的部分截去,即均以0记;
    select trunc(123.567,-2) from dual;
    --123,默认截去小数点后面的部分;
    select trunc(123.567) from dual;

  • 相关阅读:
    Python 存储引擎 数据类型 主键
    Python 数据库
    Python 线程池进程池 异步回调 协程 IO模型
    Python GIL锁 死锁 递归锁 event事件 信号量
    Python 进程间通信 线程
    Python 计算机发展史 多道技术 进程 守护进程 孤儿和僵尸进程 互斥锁
    Python 异常及处理 文件上传事例 UDP socketserver模块
    Python socket 粘包问题 报头
    Django基础,Day7
    Django基础,Day6
  • 原文地址:https://www.cnblogs.com/yclizq/p/15415945.html
Copyright © 2011-2022 走看看