Oracle中trunc()函數(shù)實(shí)例詳解
1、功能描述
用于截取時(shí)間或者數(shù)值,返回指定的值。
2、語(yǔ)法
2.1、數(shù)值處理:
格式:
trunc(number,[decimals])
- number : 為必要參數(shù),是輸入的一個(gè)數(shù)值
- decimals :參數(shù)可忽略,是要截取的位數(shù),缺省時(shí)表示截掉小數(shù)點(diǎn)后邊的值。
案例1【第二個(gè)參數(shù)為正數(shù)時(shí)】:
select trunc(12345.6789,0) from dual --返回結(jié)果為12345 --第二個(gè)參數(shù)省略,相當(dāng)于0 select trunc(12345.6789,0) from dual --返回結(jié)果為12345 --截取0位小數(shù)==去除小數(shù) select trunc(12345.6789,1) from dual --返回結(jié)果為12345.6 --截取一位小數(shù) select trunc(12345.6789,2) from dual --返回結(jié)果為12345.67 select trunc(12345.6789,5) from dual --返回結(jié)果為12345.6789
案例2【第二個(gè)參數(shù)為負(fù)數(shù)時(shí)】:
select trunc(12345.6789,-1) from dual --返回結(jié)果為12340,-1相當(dāng)于整數(shù)位截取一位,這里的截取是把數(shù)值直接變?yōu)?,不會(huì)去截取位數(shù),更不會(huì)四舍五入 select trunc(12345.6789,-2) from dual --返回結(jié)果為12300 select trunc(12345.6789,-3) from dual --返回結(jié)果為12000 select trunc(12345.6789,-4) from dual --返回結(jié)果為10000 select trunc(12345.6789,-5) from dual --返回結(jié)果為0
2.2、日期處理:
格式:
trunc(date,[format])
- date :為必要參數(shù),是輸入的一個(gè)date日期值
- format :參數(shù)可忽略,是日期格式
format 常用取值:
- 缺?。? 獲取當(dāng)前年月日:如:2022/7/21
- y或yy或yyy或yyyy或year: y 都是獲取今天的一月一日:如:2022/1/1
- 'mm'或'month' 當(dāng)月的第一天:如:2022/7/1
- 'q': 本星期的第一天【是周日而不是周一】
- 'hh': 當(dāng)前的小時(shí):如:2022/7/21 17:00:00
- 'mi': 當(dāng)前的時(shí)分:如:2022/7/21 17:48:00
案例1【缺省】
錯(cuò)誤使用:
select trunc('2022/07/21') from dual --報(bào)錯(cuò),'2022/7/21'是一個(gè)字符串,不是date類(lèi)型正確方式:
--使用to_date函數(shù),把字符串轉(zhuǎn)為日期格式,注意:to_date的日期格式默認(rèn)為yyyy/mm/dd
select trunc(to_date('2022/07/21','YYYY/MM/DD')) from dual 結(jié)果:
2022/7/21
為了方便學(xué)習(xí)trunc函數(shù),以下案例,都是用sysdate來(lái)代替日期數(shù)據(jù)【sysdate為當(dāng)前時(shí)間】
如【我當(dāng)前時(shí)間為2022/7/21】:
select sysdate from dual --結(jié)果為當(dāng)前時(shí)間:2022/7/21 17:18:18 select trunc(sysdate) from dual --結(jié)果為2022/7/21
案例2【參數(shù)2位“y”】
select trunc(sysdate,'y') from dual --結(jié)果為:2022/7/21 select trunc(sysdate,'yy') from dual --結(jié)果為:2022/7/21 select trunc(sysdate,'yyy') from dual --結(jié)果為:2022/7/21 select trunc(sysdate,'yyyy') from dual --結(jié)果為:2022/7/21
案例3【參數(shù)2位“mm”】
select trunc(sysdate,'mm') from dual --結(jié)果為:2022/7/1 select trunc(sysdate,'month') from dual --結(jié)果為:2022/7/1
案例4【參數(shù)2位“q”】
select trunc(sysdate,'d') from dual --結(jié)果為:2022/7/17
案例5【參數(shù)2位“hh”】
select trunc(sysdate,'hh') from dual --結(jié)果為:2022/7/21 17:00:00
案例6【參數(shù)2位“mi”】
select trunc(sysdate,'mi') from dual --結(jié)果為:2022/7/21 17:48:00
案例7
select trunc(sysdate) -1/24 from dual --結(jié)果為2022/7/20 23:00:00【當(dāng)前日期為:2022/7/21】 -1/24表示24點(diǎn)的前1個(gè)小時(shí) select trunc(sysdate) +2/24 from dual --結(jié)果為2022/7/21 2:00:00 +2/24表示24點(diǎn)的后2個(gè)小時(shí)
總結(jié)
到此這篇關(guān)于Oracle中trunc()函數(shù)詳解的文章就介紹到這了,更多相關(guān)Oracle trunc()函數(shù)詳解內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
- oracle數(shù)據(jù)庫(kù)刪除數(shù)據(jù)Delete語(yǔ)句和Truncate語(yǔ)句的使用比較
- Oracle round()函數(shù)與trunc()函數(shù)區(qū)別介紹
- oracle trunc()函數(shù)的使用方法
- 日常收集整理oracle trunc 函數(shù)處理日期格式(很實(shí)用)
- oracle中函數(shù) trunc(),round(),ceil(),floor的使用詳解
- Oracle常用函數(shù)Trunc及Trunc函數(shù)用法講解
- Oracle數(shù)據(jù)庫(kù)中TRUNC()函數(shù)示例詳解
相關(guān)文章
Oracle Listener 動(dòng)態(tài)注冊(cè) 與 靜態(tài)注冊(cè)
注冊(cè)就是將數(shù)據(jù)庫(kù)作為一個(gè)服務(wù)注冊(cè)到監(jiān)聽(tīng)程序??蛻舳瞬恍枰罃?shù)據(jù)庫(kù)名和實(shí)例名,只需要知道該數(shù)據(jù)庫(kù)對(duì)外提供的服務(wù)名就可以申請(qǐng)連接到數(shù)據(jù)庫(kù)2015-12-12
Oracle中直方圖對(duì)執(zhí)行計(jì)劃的影響詳解
這篇文章主要給大家介紹了關(guān)于Oracle數(shù)據(jù)庫(kù)中直方圖對(duì)執(zhí)行計(jì)劃的影響的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧。2017-09-09
自動(dòng)備份Oracle數(shù)據(jù)庫(kù)
自動(dòng)備份Oracle數(shù)據(jù)庫(kù)...2007-03-03
Oracle PL/SQL中“表或視圖不存在“錯(cuò)誤的解決方案
在Oracle PL/SQL開(kāi)發(fā)中,許多開(kāi)發(fā)者都遇到過(guò)這個(gè)令人困惑的錯(cuò)誤表或視圖不存在,這個(gè)錯(cuò)誤看似簡(jiǎn)單,但背后可能有多種原因,特別是當(dāng)表確實(shí)存在時(shí),這個(gè)錯(cuò)誤更讓人摸不著頭腦,所以本文介紹了詳細(xì)的解決方案,需要的朋友可以參考下2025-04-04
oracle數(shù)據(jù)庫(kù)添加或刪除一列的sql語(yǔ)句
需要注意的一點(diǎn),如果要修改的表,不是當(dāng)前的用戶的表,那么就需要添加上用戶的名稱(chēng)。以及有修改此表的權(quán)限2012-05-05
Oracle數(shù)據(jù)遠(yuǎn)程連接的四種設(shè)置方法和注意事項(xiàng)
Oracle數(shù)據(jù)庫(kù)的遠(yuǎn)程連接可以通過(guò)多種方式來(lái)實(shí)現(xiàn),本文我們主要介紹四種遠(yuǎn)程連接的方法和注意事項(xiàng),并通過(guò)示例來(lái)說(shuō)明,接下來(lái)我們就開(kāi)始介紹2014-04-04
oracle數(shù)據(jù)庫(kù)查看鎖表的sql語(yǔ)句整理
Oracle數(shù)據(jù)庫(kù)操作中,我們有時(shí)會(huì)用到鎖表查詢以及解鎖和kill進(jìn)程等操作,這篇文章主要給大家介紹了關(guān)于oracle數(shù)據(jù)庫(kù)查看鎖表的sql語(yǔ)句的相關(guān)資料,文中通過(guò)代碼介紹的非常詳細(xì),需要的朋友可以參考下2023-10-10

