• 设为首页
  • 收藏本站
  • 积分充值
  • VIP赞助
  • 手机版
  • 微博
  • 微信
    微信公众号 添加方式:
    1:搜索微信号(888888
    2:扫描左侧二维码
  • 快捷导航
    福建二哥 门户 查看主题

    Oracle数据库中TRUNC()函数示例详解

    发布者: 涵韵 | 发布时间: 2025-6-18 09:29| 查看数: 98| 评论数: 0|帖子模式

    前言

    在Oracle中,TRUNC函数用于截取或截断日期、时间或数值表达式的部分。它返回一个日期、时间或数值的截断版本,根据提供的格式进行截取。

    一、TRUNC函数的语法
    1. TRUNC(date)
    2. TRUNC(date, [format])
    3. TRUNC(number)
    4. 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函数应用于日期时,它会截断日期的时间部分,返回一个新的日期,时间部分设置为零。例如,TRUNC(SYSDATE)将返回当前日期,时间部分设置为零。
    • 截断时间部分:当TRUNC函数应用于时间时,它将返回一个新的时间,将分钟、秒和毫秒部分设置为零。例如,TRUNC(SYSTIMESTAMP)将返回当前时间,分钟、秒和毫秒部分设置为零。此外,还可以指定截取的位数,例如TRUNC(date, ‘MONTH’)可以截取日期的月份部分。还可以用于将日期或时间戳向下取整到指定的单位,比如TRUNC(date, ‘IW’)可以将日期向下取整到本周的第一天。
    • 截断数值部分:当TRUNC函数应用于数值时,它将截断数值的小数部分,并返回一个新的数值。例如,TRUNC(3.14159)将返回3。
    • 截断小数部分:当TRUNC函数应用于数值时,可以指定截断的精度。例如,TRUNC(3.14159, 2)将返回3.14,截断到小数点后两位。
    注意,TRUNC函数并不四舍五入,而是直接截取。如果需要进行四舍五入操作,可以使用SQL中的ROUND函数。

    三、测试用例


    1、测试日期截取

    测试SQL:
    1. SELECT
    2. TRUNC(SYSDATE,'YYYY')  AS YEAR_TRUNC,
    3. TRUNC(SYSDATE,'MM')   AS MONTH_TRUNC,
    4. TRUNC(SYSDATE,'DD')   AS DAY_TRUNC,
    5. TRUNC(SYSDATE,'HH24') AS HOUR_TRUNC,
    6. TRUNC(SYSDATE,'MI')   AS MINUTE_TRUNC,
    7. TRUNC(SYSDATE) -1/24  AS FIRST_TRUNC,
    8. TRUNC(SYSDATE) +2/24  AS SECOND_TRUNC
    9. FROM DUAL;
    复制代码
    测试结果:


    其中:最后2个用例,分别表示-1/24表示24点的前1个小时;+2/24表示24点的后2个小时。

    2、测试数值截取

    测试SQL:
    1. SELECT
    2. TRUNC(12345.6789)    AS NUMBER1,
    3. TRUNC(12345.6789,0)  AS NUMBER2,
    4. TRUNC(12345.6789,1)  AS NUMBER3,
    5. TRUNC(12345.6789,2)  AS NUMBER4,
    6. TRUNC(12345.6789,3)  AS NUMBER5,
    7. TRUNC(12345.6789,4)  AS NUMBER6,
    8. TRUNC(12345.6789,-1) AS NUMBER7,
    9. TRUNC(12345.6789,-2) AS NUMBER8,
    10. TRUNC(12345.6789,-3) AS NUMBER8,
    11. TRUNC(12345.6789,-4) AS NUMBER10
    12. FROM DUAL;
    复制代码
    测试结果:


    需要注意以下几点:


    • 对于日期参数,format参数是可选的。如果省略了format参数,默认情况下会截断到天。
    • 对于数值参数,decimal_places参数用于指定要保留的小数位数。它可以为正数(截断)或负数(进位)。
    • TRUNC()函数可以与其他函数和表达式结合使用,以便进行更复杂的数据操作和计算。

    总结

    总的来说,TRUNC函数可以用于截断日期的时间部分、时间的分钟、秒和毫秒部分、数值的小数部分,并可以指定截断的精度。
    到此这篇关于Oracle数据库中TRUNC()函数的文章就介绍到这了,更多相关Oracle TRUNC()函数详解内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

    来源:https://www.jb51.net/database/3291810qp.htm
    免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!

    本帖子中包含更多资源

    您需要 登录 才可以下载或查看,没有账号?立即注册

    ×

    最新评论

    QQ Archiver 手机版 小黑屋 福建二哥 ( 闽ICP备2022004717号|闽公网安备35052402000345号 )

    Powered by Discuz! X3.5 © 2001-2023

    快速回复 返回顶部 返回列表