Oracle TRUNC 函数详解

1.TRUNC 函数

Oracle TRUNC函数可以截取数字日期类型:

 

2.TRUNC截取数字

TRUNC(number)函数返回n1截取到n2位小数。如果省略n2时,则n1截取到0位置(即截取所有小数位)。如果n2为负数时,表示截取小数点左边的n2位,被截取部分记为0.

 

2.1语法

其语法格式如下:

TRUNC(n1 [, n2 ])

其中:n1为待截取的数值;n2为需要保留的小数位,是一个选可项。

 

2.2 Examples

2.2.1截取小数点后1位

SQL> select trunc(17.97, 1) from dual;
 
TRUNC(17.97,1)
--------------
          17.9

 

2.2.2截取小数点后0位

相当于省略n2

SQL> select trunc(17.97, 0) from dual;
 
TRUNC(17.97,0)
--------------
            17

 

2.2.3缺省n2

相当于截取0位

SQL> select trunc(17.97) from dual;
 
TRUNC(17.97)
------------
          17

 

2.3.4截取小数点前1位

SQL> select trunc(17.97, -1) from dual;
 
TRUNC(17.97,-1)
---------------
             10

总结:当n2位正数时,截取小数点有右边的位置。当N2小数点位负数时,则截取小数点左边的位置,被截取部分记为0.

 

3.TRUNC截取日期

TRUNC(date)返回以指定格式fmt截取一部分的日期格值,该函数对NLS_CALENDAR会话参数是不敏感的。它按照公历规则运作。返回值始终是日期类型,即使你指定不同datetime数据类型的日期。如果省略fmt,则日期返回最近一天

3.1语法

其语法格式如下:

TRUNC(date [, fmt ])

其中:date:为输入的日期值,是必输项;fmt:以指定格式来截取输入的日期值,是一个可选项。

TRUNC函数可以使用的格式模型如下:

Format Model

Rounding or Truncating Unit

CC

SCC

One greater than the first two digits of a four-digit year

SYYYY

YYYY

YEAR

SYEAR

YYY

YY

Y

Year (rounds up on July 1)

IYYY

IY

IY

I

ISO Year

Q

Quarter (rounds up on the sixteenth day of the second month of the quarter)

MONTH

MON

MM

RM

Month (rounds up on the sixteenth day)

WW

Same day of the week as the first day of the year

IW

Same day of the week as the first day of the ISO year

W

Same day of the week as the first day of the month

DDD

DD

J

Day

DAY

DY

D

Starting day of the week

HH

HH12

HH24

Hour

MI

Minute

 

默认为DD格式模型,返回四合五入的日期或截取到这天午夜的时间(即,晚上12点)。

 

3.2 Examples

3.2.1YEAR模型

向上截取到1月1日

SQL> select trunc(sysdate,'YEAR') from dual;
 
TRUNC(SYSDATE,'YEAR')
---------------------
2014/1/1

 

3.2.2省略模型

SQL> select trunc(sysdate) from dual;
 
TRUNC(SYSDATE)
--------------
2014/1/4

 

省略模型,相当于指定模型为DD。

SQL> select trunc(sysdate,'DD') from dual;
 
TRUNC(SYSDATE,'DD')
-------------------
2014/1/4

 

 

 

 

 

 

 

 

 

 

 

 

 

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值