Oracle trunc的使用
在生产环境中我们经常会用到只取年月日或者时间处理的场景,大多数人用的都是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
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 清华大学推出第四讲使用 DeepSeek + DeepResearch 让科研像聊天一样简单!
· 推荐几款开源且免费的 .NET MAUI 组件库
· 实操Deepseek接入个人知识库
· 易语言 —— 开山篇
· 【全网最全教程】使用最强DeepSeekR1+联网的火山引擎,没有生成长度限制,DeepSeek本体