在Oracle中,TRUNC函数用于截取或截断日期、时间或数值表达式的部分。它返回一个日期、时间或数值的截断版本,根据提供的格式进行截取。
TRUNC(date)
TRUNC(date, [format])
TRUNC(number)
TRUNC(number, precision)
参数说明:
date: 一个日期或时间表达式。
format: 可选参数,用于指定截取的精度。可以是以下值之一:
参数 | 说明 |
---|---|
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: 一个数值表达式,可以是整数或浮点数。
precision: 可选参数,用于指定数值的截取精度。表示保留到小数点后多少位,默认为0。
在Oracle中,TRUNC函数用于截断日期或数值的小数部分。它具有以下用途:
注意,TRUNC函数并不四舍五入,而是直接截取。如果需要进行四舍五入操作,可以使用SQL中的ROUND函数。
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;
测试结果:
2、测试数值截取
测试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;
测试结果:
总的来说,TRUNC函数可以用于截断日期的时间部分、时间的分钟、秒和毫秒部分、数值的小数部分,并可以指定截断的精度。