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