文章詳情頁
Oracle中trunc()函數實例詳解
瀏覽:184日期:2023-03-12 15:25:34
目錄
- 1、功能描述
- 2、語法
- 2.1、數值處理:
- 2.2、日期處理:
- 總結
1、功能描述
用于截取時間或者數值,返回指定的值。
2、語法
2.1、數值處理:
格式:
trunc(number,[decimals])
- number : 為必要參數,是輸入的一個數值
- decimals :參數可忽略,是要截取的位數,缺省時表示截掉小數點后邊的值。
案例1【第二個參數為正數時】:
select trunc(12345.6789,0) from dual --返回結果為12345 --第二個參數省略,相當于0 select trunc(12345.6789,0) from dual --返回結果為12345 --截取0位小數==去除小數 select trunc(12345.6789,1) from dual --返回結果為12345.6 --截取一位小數 select trunc(12345.6789,2) from dual --返回結果為12345.67 select trunc(12345.6789,5) from dual --返回結果為12345.6789
案例2【第二個參數為負數時】:
select trunc(12345.6789,-1) from dual --返回結果為12340,-1相當于整數位截取一位,這里的截取是把數值直接變為0,不會去截取位數,更不會四舍五入 select trunc(12345.6789,-2) from dual --返回結果為12300 select trunc(12345.6789,-3) from dual --返回結果為12000 select trunc(12345.6789,-4) from dual --返回結果為10000 select trunc(12345.6789,-5) from dual --返回結果為0
2.2、日期處理:
格式:
trunc(date,[format])
- date :為必要參數,是輸入的一個date日期值
- format :參數可忽略,是日期格式
format 常用取值:
- 缺省: 獲取當前年月日:如:2022/7/21
- y或yy或yyy或yyyy或year: y 都是獲取今天的一月一日:如:2022/1/1
- 'mm'或'month' 當月的第一天:如:2022/7/1
- 'q': 本星期的第一天【是周日而不是周一】
- 'hh': 當前的小時:如:2022/7/21 17:00:00
- 'mi': 當前的時分:如:2022/7/21 17:48:00
案例1【缺省】
錯誤使用:
select trunc("2022/07/21") from dual --報錯,"2022/7/21"是一個字符串,不是date類型
正確方式:
--使用to_date函數,把字符串轉為日期格式,注意:to_date的日期格式默認為yyyy/mm/dd select trunc(to_date("2022/07/21","YYYY/MM/DD")) from dual
結果:
2022/7/21
為了方便學習trunc函數,以下案例,都是用sysdate來代替日期數據【sysdate為當前時間】
如【我當前時間為2022/7/21】:
select sysdate from dual --結果為當前時間:2022/7/21 17:18:18 select trunc(sysdate) from dual --結果為2022/7/21
案例2【參數2位“y”】
select trunc(sysdate,"y") from dual --結果為:2022/7/21 select trunc(sysdate,"yy") from dual --結果為:2022/7/21 select trunc(sysdate,"yyy") from dual --結果為:2022/7/21 select trunc(sysdate,"yyyy") from dual --結果為:2022/7/21
案例3【參數2位“mm”】
select trunc(sysdate,"mm") from dual --結果為:2022/7/1 select trunc(sysdate,"month") from dual --結果為:2022/7/1
案例4【參數2位“q”】
select trunc(sysdate,"d") from dual --結果為:2022/7/17
案例5【參數2位“hh”】
select trunc(sysdate,"hh") from dual --結果為:2022/7/21 17:00:00
案例6【參數2位“mi”】
select trunc(sysdate,"mi") from dual --結果為:2022/7/21 17:48:00
案例7
select trunc(sysdate) -1/24 from dual --結果為2022/7/20 23:00:00【當前日期為:2022/7/21】 -1/24表示24點的前1個小時 select trunc(sysdate) +2/24 from dual --結果為2022/7/21 2:00:00 +2/24表示24點的后2個小時
總結
到此這篇關于Oracle中trunc()函數詳解的文章就介紹到這了,更多相關Oracle trunc()函數詳解內容請搜索以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持!
標簽:
Oracle
排行榜