在生产环境中我们经常会用到只取年月日或者时间处理的场景,大多数人用的都是to_char(string,'yyyy-mm-dd')或者to_date(string,'yyyy-mm-dd')来处理,不说这个方式的效率,但在格式方面来说看上去就没有那么简洁。
--to_char处理
SELECT to_char(sysdate,'yyyy-mm-dd') from dual;
--trunc处理
SELECT TRUNC(sysdate) from dual;
拿个实例来讲
原本的条件是用大于等于和小于等于或者用between范围查询来查数据;注意:如果时间字段有索引的话建议还是用这种方式处理,trunc会让索引失效。
使用trunc处理后的语句,简短了很多。注意:如果时间字段有索引的话,不建议用trunc,trunc会让索引失效。
trunc的其他使用方式:
1 --返回当年第一天 2 select trunc(sysdate,'yyyy') from dual ; 3 结果:2022-01-01 4 --返回当月第一天 5 select trunc(sysdate,'mm') from dual ; 6 结果:2022-09-01 7 --返回当前年月日 8 select trunc(sysdate,'dd') from dual ; 9 结果:2022-09-01 10 --返回当前星期的第一天(星期日) 11 select trunc(sysdate,'d') from dual ; 12 结果:2022-08-28 13 --返回当前日期截取到小时,分秒补0 14 select trunc(sysdate,'hh') from dual ; 15 结果:2022-09-01 9:00:00 16 --返回当前日期截取到分,秒补0 17 select trunc(sysdate,'mi') from dual ; 18 结果:2022-09-01 9:38:00
标签:sysdate,01,--,dual,使用,Oracle,select,trunc From: https://www.cnblogs.com/LaiYun/p/16645431.html