Oracle trunc(sysdate) 日期函数的用法

33 篇文章 1 订阅
19 篇文章 0 订阅

摘自 原文链接:https://blog.csdn.net/weixin_35642587/article/details/112963828

2、trunc(d1[,c1])返回日期d1所在期间(参数c1)的第一天日期
    d1日期型,c1为字符型(参数),c1默认为j(即当前日期)
    c1对应的参数表:
    本周星期日:day或dy或d (每周顺序:日,一,二,三,四,五,六)
    本月初日期:month或mon或mm或rm
    本季日期:q
    本年初日期:syear或year或yyyy或yyy或yy或y(多个y表示精度)
    本世纪初日期:cc或scc
【返回】:日期

select sysdate  --当时日期
      ,trunc(sysdate) 
      ,trunc(sysdate ,'DD')  --今天日期
      ,trunc(sysdate,'d')+7  --本周星期日
      ,trunc(sysdate,'dy')+7   --本周星期日
      ,trunc(sysdate,'day')+7  --本周星期日
      ,trunc(sysdate,'q') --本季开始日期
      ,trunc(sysdate,'month')  --本月开始日期
      ,trunc(sysdate ,'mm')  --本月开始日期
      ,trunc(sysdate,'year')   --本年开始日期
      ,trunc(sysdate ,'yyyy')  --本年开始日期
      ,trunc(sysdate ,'HH24')  --本小时开始时间
      ,trunc(sysdate ,'MI')  --本分钟开始时间
      ,trunc(sysdate ,'CC')  --本世纪开始时间
      ,trunc(LAST_DAY(sysdate),'dd')  --本月最后一天
  from dual
;

--3、round(10.2356,2)函数可以对数字按指定保留小数位数四舍五入,这个函数还可以对日期四舍五入

select round(sysdate,'yyyy')  四舍五入到年
      ,round(sysdate,'mm')  四舍五入到月
      ,round(sysdate,'dd')  四舍五入到日
      ,round(sysdate,'hh')  四舍五入到小时
      ,round(sysdate,'mi')  四舍五入到分钟
  from dual;

---==================================================================

摘自: oracle trunc()函数_trunc(sysdate,'yyyy')-CSDN博客

这篇文章主要介绍了Oracle常用函数Trunc及Trunc函数用法讲解,需要的朋友可以参考下
1. Trunc( date)
trunc 以指定的元素截取日期类型的数据
语法:trunc(date,[ format])
date– 日期格式的值
format–日期格式 如‘mm','yyyy'等 将date从指定日期格式截取
例如:
trunc(sysdate,'yyyy')=‘01-01月-17'(sysdate='21-11月-17'); --返回今年的第一天
trunc(sysdate,'mm')=‘01-11月-17'; --返回本月第一天
trunc(sysdate,'d')=‘19-11月-17'; --(今天星期二,一周从周日开始计算)返回本周第一天
2 Trunc(number,[number1])
trunc(number) 和round( ) 相似 ,只是不对截去的第一位数字不进行四舍五入
如:
round(89.125,2)=89.13
trunc(89.125,2)=89.12
trunc(89.125,-1)=80
number1 的默认值是 0。
下面介绍下Oracle trunc()函数的用法
1.TRUNC(for dates)
  TRUNC函数为指定元素而截去的日期值。
  其具体的语法格式如下:
  TRUNC(date[,fmt])
  其中:
  date 一个日期值
  fmt 日期格式,该日期将由指定的元素格式所截去。忽略它则由最近的日期截去
  下面是该函数的使用情况:
  TRUNC(TO_DATE('24-Nov-1999 08:00 pm'),'dd-mon-yyyy hh:mi am')
  ='24-Nov-1999 12:00:00 am'
  TRUNC(TO_DATE('24-Nov-1999 08:37 pm','dd-mon-yyyy hh:mi am'),'hh') ='24-Nov-1999 08:00:00 am'
  trunc(sysdate,'yyyy') --返回当年第一天。
  trunc(sysdate,'mm') --返回当月第一天。
  trunc(sysdate,'d') --返回当前星期的第一天。
  trunc(sysdate,'dd')--返回当前年月日
  2.TRUNC(for number)
  TRUNC函数返回处理后的数值,其工作机制与ROUND函数极为类似,只是该函数不对指定小数前或后的部分做相应舍入选择处理,而统统截去。
  其具体的语法格式如下
  TRUNC(number[,decimals])
  其中:
  number 待做截取处理的数值
  decimals 指明需保留小数点后面的位数。可选项,忽略它则截去所有的小数部分
  下面是该函数的使用情况:
  TRUNC(89.985,2)=89.98
  TRUNC(89.985)=89
  TRUNC(89.985,-1)=80
  注意:第二个参数可以为负数,表示为小数点左边指定位数后面的部分截去,即均以0记。与取整类似,比如参数为1即取整到十分位,如果是-1,则是取整到十位,以此类推。

摘自:http://appleses.iteye.com/blog/1531048

select to_char(trunc(add_months(last_day(sysdate), -1) + 1), 'yyyy-mm-dd') "本月第一天", 
to_char(last_day(sysdate), 'yyyy-mm-dd') "本月最后一天" 


--Oracle trunc()函数的用法 
/**************日期********************/ 
1.select trunc(sysdate) from dual  --2011-3-18  今天的日期为2011-3-18 
2.select trunc(sysdate, 'mm')   from   dual  --2011-3-1    返回当月第一天. 
3.select trunc(sysdate,'yy') from dual  --2011-1-1       返回当年第一天 
4.select trunc(sysdate,'dd') from dual  --2011-3-18    返回当前年月日 
5.select trunc(sysdate,'yyyy') from dual  --2011-1-1   返回当年第一天 
6.select trunc(sysdate,'d') from dual  --2011-3-13 (星期天)返回当前星期的第一天 
7.select trunc(sysdate, 'hh') from dual   --2011-3-18 14:00:00   当前时间为14:41   
8.select trunc(sysdate, 'mi') from dual  --2011-3-18 14:41:00   TRUNC()函数没有秒的精确 

/***************数字********************/ 
/* 
TRUNC(number,num_digits) 
Number 需要截尾取整的数字。 
Num_digits 用于指定取整精度的数字。Num_digits 的默认值为0。 
TRUNC()函数截取时不进行四舍五入 
*/ 
9.select trunc(123.458) from dual --123 
10.select trunc(123.458,0) from dual --123 
11.select trunc(123.458,1) from dual --123.4 
12.select trunc(123.458,-1) from dual --120 
13.select trunc(123.458,-4) from dual --0 
14.select trunc(123.458,4) from dual  --123.458 
15.select trunc(123) from dual  --123 
16.select trunc(123,1) from dual --123 
17.select trunc(123,-1) from dual --120

  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值