C 函數
Oracle TRUNC函數可以截取數字和日期類型:
C截取數字
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.
C截取日期
TRUNC(date)返回以指定格式fmt截取一部分的日期格值,該函數對NLS_CALENDAR會話參數是不敏感的`。它按照公曆規則運作。返回值始終是日期類型,即使你指定不同datetime數據類型的日期。如果省略fmt,則日期返回最近一天。
3.1語法
其語法格式如下:
TRUNC(date [, fmt ])
其中:date:爲輸入的日期值,是必輸項;fmt:以指定格式來截取輸入的日期值,是一個可選項。
TRUNC函數可以使用的格式模型如下:
vciB0aGUgUk9VTkQgYW5kIFRSVU5DIERhdGUgRnVuY3Rpb25zIA==" width="100%"> 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