Oracle查询今天的数据(昨天、本周...)
本文共 2,420 字,预计阅读时间 8 分钟
前言:获取当前时间的方法:
1 | select sysdate from dual; |
1.今天的数据
select * from user where TO_CHAR(create_time,'yyyy-MM-dd') = TO_CHAR(sysdate,'yyyy-MM-dd');
2.昨天的数据
select * from user where TO_CHAR(create_time,'yyyy-MM-dd') = TO_CHAR(sysdate-1,'yyyy-MM-dd');
3.本周的数据
本周的数据就是从周一到周日的数据。
select * from user where create_time >= TRUNC(NEXT_DAY(sysdate-8,1)+1) and create_time< TRUNC(NEXT_DAY(sysdate-8,1)+7)+1;
说明:
1)NEXT_DAY()函数:获取当前时间的下一周周日的时间。
select NEXT_DAY(sysdate, 1) from dual;
若当前时间是2021-06-09 14:20:20,那么其查询的结果就是2021-06-13 14:20:20.
2)TRUNC()函数:对日期或数字进行截取,可指定截取的长度。这里只对日期的类型进行说明:
select TRUNC(sysdate) from dual; --2021-06-09 00:00:00
这里是把当前的时间进行截取,默认只截取到日期,时间部分都是初始值0。
select TRUNC(sysdate,'yyyy') from dual; --2021-01-01 00:00:00
这里是获取到年份,月份和日期部分是初始值1,时间部分都是初始值0。
3)综合分析
上述中 "NEXT_DAY(sysdate-8,1)" 是查询上周日00:00:00的时间,
"TRUNC(NEXT_DAY(sysdate-8,1)+1)" 是查询本周一00:00:00的时间,
"TRUNC(NEXT_DAY(sysdate-8,1)+7)+1" 是查询下周一00:00:00的时间
4.上周的数据
select * from user where create_time >= TRUNC(NEXT_DAY(sysdate-8,1)-6) and create_time< TRUNC(NEXT_DAY(sysdate-8,1)+1);
5.本月的数据
select * from user where TO_CHAR(create_time,'yyyy-MM') = TO_CHAR(sysdate,'yyyy-MM');
6.上月的数据
1)ADD_MONTHS()函数:获取当前时间前面或后面的月份的当前时间。
-- 上个月的现在时间 select ADD_MONTHS(SYSDATE,-1) from dual; --2021-05-09 15:15:11 -- 下个月的现在时间 select ADD_MONTHS(SYSDATE,1) from dual; --2021-07-09 15:15:11
2)查询上个月的数据
select * from user where TO_CHAR(create_time,'yyyy-MM') = TO_CHAR(ADD_MONTHS(sysdate,-1),'yyyy-MM');
7.今年的数据
select * from user where TO_CHAR(create_time,'yyyy') = TO_CHAR(sysdate,'yyyy');
8.去年的数据
select * from sys_user where TO_CHAR(create_time,'yyyy') = TO_CHAR(ADD_MONTHS(trunc(sysdate,'YYYY'),-12),'yyyy');
说明如下:
1)TRNUC()用来获取今年第一天的时间
select TRUNC(sysdate,'YYYY') from dual; --2021-01-01 00:00:00
2)ADD_MONTHS()用来获取去年第一天的时间
select ADD_MONTHS(trunc(sysdate,'YYYY'),-12) from dual; --2020-01-01 00:00:00
然后再把年份进行比较即可获取去年的数据。
就是这么简单,你学废了吗?感觉有用的话,给笔者点个赞吧 !
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!