TRUNC函式的用法

2021-06-19 23:18:44 字數 2228 閱讀 6306

在專案中需要中通過年月進行sql查詢,需要個方法將時間擷取為「yyyy-mm"格式。查詢oracle幫助文件就發現了trunc這個函式。

trunc

函式用於對值進行截斷。

用法有兩種:trunc(number)表示截斷數字,trunc(date)表示截斷日期。

(1)截斷數字:

格式:trunc(n1,n2),n1表示被截斷的數字,n2表示要截斷到那一位。n2可以是負數,表示截斷小數點前。注意,trunc截斷不是四捨五入。

(2)trunc函式為指定元素而截去的日期值。

其具體的語法格式如下:

trunc(date,[fmt])

其中:date 乙個日期值

fmt 日期格式,該日期將由指定的元素格式所截去。忽略它則由最近的日期截去

示例如下:

sql> select trunc(15.79) from dual;

trunc(15.79)

------------

15sql> select trunc(15.79,1) from dual;

trunc(15.79,1)

--------------

15.7

sql> select trunc(15.79,-1) from dual;

trunc(15.79,-1)

---------------

10(2)

截斷日期:

先執行命令:alter session set nls_date_format='yyyy-mm-dd hh24:mi:hh';

擷取今天:

sql> select sysdate,trunc(sysdate,'dd') from dual;

sysdate             trunc(sysdate,'dd')

------------------- -------------------

2009-03-24 21:31:17 2009-03-24 00:00:00

擷取本週第一天:

sql> select sysdate,trunc(sysdate,'d') from dual;

sysdate             trunc(sysdate,'d')

------------------- -------------------

2009-03-24 21:29:32 2009-03-22 00:00:00

擷取本月第一天:

sql> select sysdate,trunc(sysdate,'mm') from dual;

sysdate             trunc(sysdate,'mm')

------------------- -------------------

2009-03-24 21:30:30 2009-03-01 00:00:00

擷取本年第一天:

sql> select sysdate,trunc(sysdate,'y') from dual;

sysdate             trunc(sysdate,'y')

------------------- -------------------

2009-03-24 21:31:57 2009-01-01 00:00:00

擷取到小時:

sql> select sysdate,trunc(sysdate,'hh') from dual;

sysdate             trunc(sysdate,'hh')

------------------- -------------------

2009-03-24 21:32:59 2009-03-24 21:00:00

擷取到分鐘:

sql> select sysdate,trunc(sysdate,'mi') from dual;

sysdate             trunc(sysdate,'mi')

------------------- -------------------

2009-03-24 21:33:32 2009-03-24 21:33:00

獲取上月第一天:

sql> select trunc(add_months(sysdate,-1),'mm') from dual

trunc的函式的用處還是比較多的,我就用了trunc(sysdate,'mm')這一種,不過總體上trunc的意思就是擷取字段,熟悉一下用法就可以了

trunc 函式用法

1.trunc用於日期,可精確到年,月和日.select trunc sysdate,yyyy from dual select trunc sysdate,mm from dual select trunc sysdate,dd from dual 第乙個引數為日期,第二個引數為格式 format...

trunc 函式用法

至 1.trunc用於日期,可精確到年,月和日.第乙個引數為日期,第二個引數為格式 format 即trunc date,format 如果省略format表示精確到日。2.trunc也可用於數值,截斷位數 sql select trunc 123.3210,2 from dual trunc 12...

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...