简介:Oracle中的TRUNC()函数是一个常用的日期和数字函数,用于截断日期或数字。本文将介绍TRUNC()函数的基本使用方法,包括截断日期和数字的示例,以及如何使用不同的格式模型来截断数据。
Oracle中的TRUNC()函数用于截断日期或数字。它可以根据指定的格式模型将日期或数字截断到指定的精度。以下是TRUNC()函数的基本使用方法:
在上面的示例中,通过指定不同的格式模型,可以将日期截断到不同的精度。例如,’MM’表示月份,’YYYY’表示年份,’DDD’表示星期几。
SELECT TRUNC(sysdate) FROM dual; -- 返回当前日期,截断到天SELECT TRUNC(sysdate, 'MM') FROM dual; -- 返回当前月份的第一天SELECT TRUNC(sysdate, 'YYYY') FROM dual; -- 返回当前年份的1月1日SELECT TRUNC(sysdate, 'DDD') FROM dual; -- 返回当前日期的星期一
在上面的示例中,通过指定第二个参数为2,可以将数字截断到小数点后两位。如果第二个参数为0,则将数字截断到整数部分。
SELECT TRUNC(123.4567, 2) FROM dual; -- 返回123.45SELECT TRUNC(-123.4567, 0) FROM dual; -- 返回-123
在上面的示例中,通过使用CONNECT BY子句生成12个月份,并使用TRUNC()函数将每个月份的第一天进行截断。最终结果将返回当前月份的前12个月份的第一天。
SELECT TRUNC(SYSDATE - (level-1), 'MM')FROM dualCONNECT BY level <= 12; -- 返回当前月份的前12个月份的第一天
在上面的示例中,通过指定第二个参数为-2或2,可以将数字格式化为固定小数点或科学计数法的形式。如果第二个参数为负数,则将数字截断到指定的小数位数;如果第二个参数为正数,则将数字四舍五入到指定的小数位数。
SELECT TRUNC(123456789.987654321, -2) FROM dual; -- 返回123456700.00SELECT TRUNC(123456789.987654321, 2) FROM dual; -- 返回123456789.99