在專案中需要中通過年月進行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...