Oracle數(shù)據(jù)庫(kù)中TRUNC()函數(shù)示例詳解
前言
在Oracle中,TRUNC函數(shù)用于截取或截?cái)嗳掌?、時(shí)間或數(shù)值表達(dá)式的部分。它返回一個(gè)日期、時(shí)間或數(shù)值的截?cái)喟姹?,根?jù)提供的格式進(jìn)行截取。
一、TRUNC函數(shù)的語(yǔ)法
TRUNC(date) TRUNC(date, [format]) TRUNC(number) TRUNC(number, precision)
參數(shù)說(shuō)明:
- date: 一個(gè)日期或時(shí)間表達(dá)式。
- format: 可選參數(shù),用于指定截取的精度??梢允且韵轮抵唬?/li>
參數(shù) | 說(shuō)明 |
---|---|
YYYY | 年份 |
YYYY-MM | 年份和月份 |
YYYY-MM-DD | 年份、月份和日期 |
YYYY-MM-DD HH24 | 年份、月份、日期和小時(shí)(24小時(shí)制) |
YYYY-MM-DD HH24:MI | 年份、月份、日期、小時(shí)和分鐘 |
YYYY-MM-DD HH24:MI:SS | 年份、月份、日期、小時(shí)、分鐘和秒鐘 |
YYYY-MM-DD HH24:MI:SS.FF | 年份、月份、日期、小時(shí)、分鐘、秒鐘和毫秒 |
- number: 一個(gè)數(shù)值表達(dá)式,可以是整數(shù)或浮點(diǎn)數(shù)。
- precision: 可選參數(shù),用于指定數(shù)值的截取精度。表示保留到小數(shù)點(diǎn)后多少位,默認(rèn)為0。
二、主要用途
在Oracle中,TRUNC函數(shù)用于截?cái)嗳掌诨驍?shù)值的小數(shù)部分。它具有以下用途:
截?cái)嗳掌诓糠郑寒?dāng)TRUNC函數(shù)應(yīng)用于日期時(shí),它會(huì)截?cái)嗳掌诘臅r(shí)間部分,返回一個(gè)新的日期,時(shí)間部分設(shè)置為零。例如,TRUNC(SYSDATE)將返回當(dāng)前日期,時(shí)間部分設(shè)置為零。
截?cái)鄷r(shí)間部分:當(dāng)TRUNC函數(shù)應(yīng)用于時(shí)間時(shí),它將返回一個(gè)新的時(shí)間,將分鐘、秒和毫秒部分設(shè)置為零。例如,TRUNC(SYSTIMESTAMP)將返回當(dāng)前時(shí)間,分鐘、秒和毫秒部分設(shè)置為零。此外,還可以指定截取的位數(shù),例如TRUNC(date, ‘MONTH’)可以截取日期的月份部分。還可以用于將日期或時(shí)間戳向下取整到指定的單位,比如TRUNC(date, ‘IW’)可以將日期向下取整到本周的第一天。
截?cái)鄶?shù)值部分:當(dāng)TRUNC函數(shù)應(yīng)用于數(shù)值時(shí),它將截?cái)鄶?shù)值的小數(shù)部分,并返回一個(gè)新的數(shù)值。例如,TRUNC(3.14159)將返回3。
截?cái)嘈?shù)部分:當(dāng)TRUNC函數(shù)應(yīng)用于數(shù)值時(shí),可以指定截?cái)嗟木?。例如,TRUNC(3.14159, 2)將返回3.14,截?cái)嗟叫?shù)點(diǎn)后兩位。
注意,TRUNC函數(shù)并不四舍五入,而是直接截取。如果需要進(jìn)行四舍五入操作,可以使用SQL中的ROUND函數(shù)。
三、測(cè)試用例
1、測(cè)試日期截取
測(cè)試SQL:
SELECT TRUNC(SYSDATE,'YYYY') AS YEAR_TRUNC, TRUNC(SYSDATE,'MM') AS MONTH_TRUNC, TRUNC(SYSDATE,'DD') AS DAY_TRUNC, TRUNC(SYSDATE,'HH24') AS HOUR_TRUNC, TRUNC(SYSDATE,'MI') AS MINUTE_TRUNC, TRUNC(SYSDATE) -1/24 AS FIRST_TRUNC, TRUNC(SYSDATE) +2/24 AS SECOND_TRUNC FROM DUAL;
測(cè)試結(jié)果:
其中:最后2個(gè)用例,分別表示-1/24表示24點(diǎn)的前1個(gè)小時(shí);+2/24表示24點(diǎn)的后2個(gè)小時(shí)。
2、測(cè)試數(shù)值截取
測(cè)試SQL:
SELECT TRUNC(12345.6789) AS NUMBER1, TRUNC(12345.6789,0) AS NUMBER2, TRUNC(12345.6789,1) AS NUMBER3, TRUNC(12345.6789,2) AS NUMBER4, TRUNC(12345.6789,3) AS NUMBER5, TRUNC(12345.6789,4) AS NUMBER6, TRUNC(12345.6789,-1) AS NUMBER7, TRUNC(12345.6789,-2) AS NUMBER8, TRUNC(12345.6789,-3) AS NUMBER8, TRUNC(12345.6789,-4) AS NUMBER10 FROM DUAL;
測(cè)試結(jié)果:
需要注意以下幾點(diǎn):
- 對(duì)于日期參數(shù),format參數(shù)是可選的。如果省略了format參數(shù),默認(rèn)情況下會(huì)截?cái)嗟教臁?/li>
- 對(duì)于數(shù)值參數(shù),decimal_places參數(shù)用于指定要保留的小數(shù)位數(shù)。它可以為正數(shù)(截?cái)啵┗蜇?fù)數(shù)(進(jìn)位)。
- TRUNC()函數(shù)可以與其他函數(shù)和表達(dá)式結(jié)合使用,以便進(jìn)行更復(fù)雜的數(shù)據(jù)操作和計(jì)算。
總結(jié)
總的來(lái)說(shuō),TRUNC函數(shù)可以用于截?cái)嗳掌诘臅r(shí)間部分、時(shí)間的分鐘、秒和毫秒部分、數(shù)值的小數(shù)部分,并可以指定截?cái)嗟木取?/p>
到此這篇關(guān)于Oracle數(shù)據(jù)庫(kù)中TRUNC()函數(shù)的文章就介紹到這了,更多相關(guān)Oracle TRUNC()函數(shù)詳解內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
解決ORA-12170:TNS connect timeout occurred問(wèn)題
這篇文章主要介紹了解決ORA-12170:TNS connect timeout occurred問(wèn)題,本文給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2019-12-12oracle執(zhí)行update語(yǔ)句時(shí)卡住問(wèn)題分析及解決辦法
這篇文章主要介紹了oracle執(zhí)行update語(yǔ)句時(shí)卡住問(wèn)題分析及解決辦法,涉及記錄鎖等相關(guān)知識(shí),具有一定參考價(jià)值,需要的朋友可以了解。2017-10-10ORACLE 11g從 11.2.0.1升級(jí)到11.2.0.4 詳細(xì)實(shí)戰(zhàn)教程
這篇文章主要介紹了ORACLE 11g從 11.2.0.1升級(jí)到11.2.0.4 詳細(xì)實(shí)戰(zhàn)教程,非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友可以參考下2017-03-03查看oracle數(shù)據(jù)庫(kù)的編碼及修改編碼格式的方法
本節(jié)主要介紹了如何查看oracle數(shù)據(jù)庫(kù)的編碼及修改編碼格式,需要的朋友可以參考下2014-07-07給Oracle添加split和splitstr函數(shù)的方法
最近項(xiàng)目中有很多需要做批量操作的需求,客戶端把一組逗號(hào)分隔的ID字符串傳給數(shù)據(jù)庫(kù),存儲(chǔ)過(guò)程就需要把它們分割,然后逐個(gè)處理2012-11-11Oracle中 關(guān)于數(shù)據(jù)庫(kù)存儲(chǔ)過(guò)程和存儲(chǔ)函數(shù)的使用
本篇文章,小編將為大家介紹,在Oracle中 關(guān)于數(shù)據(jù)庫(kù)存儲(chǔ)過(guò)程和存儲(chǔ)函數(shù)的使用,有需要的朋友可以參考一下2013-04-04Oracle基礎(chǔ)多條sql執(zhí)行在中間的語(yǔ)句出現(xiàn)錯(cuò)誤時(shí)的控制方式
今天小編就為大家分享一篇關(guān)于Oracle基礎(chǔ)多條sql執(zhí)行在中間的語(yǔ)句出現(xiàn)錯(cuò)誤時(shí)的控制方式,小編覺(jué)得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來(lái)看看吧2018-12-12oracle查看字符集后修改oracle服務(wù)端和客戶端字符集的步驟
本文介紹了oracle server端查詢字符集后,修改oracle服務(wù)端和客戶端字符集的步驟,大家參考使用吧2014-01-01