TRUNC函数在Oracle中用于截断日期、时间或数字的精度。其语法如下:
截取数字:
TRUNC(number [, precision])
讯享网
其中:
- number 表示要截断的数字。
- precision表示截断的精度。可以是负数、整数或者默认为空。正数表示保留小数位数,负数表示截断小数位数,0表示截断整数部分。
以下是一些示例:
讯享网SELECT TRUNC(12.345) FROM dual; -- 返回12 SELECT TRUNC(9.999, 2) FROM dual; -- 返回9.99 SELECT TRUNC(1234.5678, -2) FROM dual; -- 返回1200 SELECT TRUNC(1234.5678, 1) FROM dual; -- 返回1234.5
截取日期
TRUNC(date [, format])
其中
- date表示要截断的日期/时间。
- format 表示截断结果的格式。可以是以下值之一:‘YYYY’, ‘YYY’, ‘YY’, ‘YEAR’,‘MONTH’, ‘MON’, ‘MM’, ‘DY’, ‘DAY’, ‘HH24’, ‘HH12’, ‘HH’, ‘MI’, ‘SS’,‘SSSSS’ 等。
以下是一些示例:
讯享网select trunc(sysdate) from dual; -- 2023-08-04 今天的日期为2023-08-04 select trunc(sysdate, 'mm') from dual; -- 2023-08-01 返回当月第一天 select trunc(sysdate, 'MONTH') from dual; -- 2023-08-01 返回当月第一天 select trunc(sysdate, 'yy') from dual; -- 2023-01-01 返回当年第一天 select trunc(sysdate, 'yyyy') from dual; -- 2023-01-01 返回当年第一天 SELECT TRUNC(SYSDATE, 'YYYY') FROM dual; -- 2023-01-01 返回当年第一天 select trunc(sysdate, 'dd') from dual; -- 2023-08-04 返回当前年月日 select trunc(sysdate, 'd') from dual; -- 2023-07-30 (星期天)返回当前星期的第一天,自己查下日历看下 select trunc(sysdate, 'day') from dual; -- 返回当前星期的第一天 select trunc(sysdate, 'hh') from dual; -- 2023-08-04 10:00:00 返回当前小时的开始时间 当前时间为10:15 SELECT TRUNC(SYSDATE, 'HH24') FROM dual; -- 返回当前小时的开始时间 select trunc(sysdate, 'mi') from dual; -- 2023-08-04 10:15:00 返回当前分钟的开始时间 TRUNC()函数没有秒的精确 SELECT TRUNC(SYSDATE, 'MI') FROM dual; -- 返回当前分钟的开始时间
请注意,TRUNC函数在Oracle和MySQL中的使用可能有所不同。上述示例只适用于Oracle数据库。在使用时,请查阅所使用数据库的文档以了解具体语法和用法。
这里整理了几个mysql对应的写法,由于mysql没有TRUNC函数。
在MySQL中,可以使用DATE_FORMAT函数和STR_TO_DATE函数来实现类似于Oracle中TRUNC函数的功能。下面是一个示例:
SELECT DATE_FORMAT(sysdate(), '%Y-%m-%d') from dual; -- 2023-08-04 返回当前年月日 SELECT DATE_FORMAT(sysdate(), '%Y-%m-01') from dual; -- 2023-08-01 返回当月第一天 SELECT DATE_FORMAT(sysdate(), '%Y-01-01') from dual; -- 2023-01-01 返回当年第一天
请注意,在MySQL中没有直接等效于Oracle中TRUNC函数的函数。因此,您需要使用STR_TO_DATE将字符串转换为日期,然后使用DATE_FORMAT函数指定所需的日期格式来实现截断。
有更好的方法欢迎评论区留言补充

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/48967.html