ICode9

精准搜索请尝试: 精确搜索
首页 > 数据库> 文章详细

Oracle:trunc()函数简介 时间处理及数字小数位处理

2021-10-17 09:32:02  阅读:231  来源: 互联网

标签:sysdate 第一天 -- dual Oracle 小数位 select 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;

标签:sysdate,第一天,--,dual,Oracle,小数位,select,trunc
来源: https://www.cnblogs.com/yclizq/p/15415945.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有