0

0

Oracle根据时间查询的一些常见情况汇总

WBOY

WBOY

发布时间:2022-09-02 17:04:52

|

3052人浏览过

|

来源于脚本之家

转载

本篇文章给大家带来了关于oracle的相关知识,根据时间查询是我们日常开发中经常会遇到的一个功能,下面介绍了关于oracle根据时间查询的一些常见情况,文中通过实例代码介绍的非常详细,需要的朋友可以参考下。

Oracle根据时间查询的一些常见情况汇总

推荐教程:《Oracle视频教程

1. 查询时间段之内的数据

查询2021-01-01  至  2021-01- 02 的数据
SELECT *
FROM t_table1 t
WHERE t.d_time >= to_date('2021-01-01 00:00:00', 'yyyy-mm-dd hh24:mi:ss')
	AND t.d_time <= to_date('2021-01-02 23:59:59', 'yyyy-mm-dd hh24:mi:ss');

以下SQL,只会查询2021-01-01至2021-1-2 00:00:00的数据

AILOGO
AILOGO

LOGO123旗下的AI智能LOGO生成器,只需输入品牌名称就能免费在线生成公司logo设计及配套企业VI,轻松打造您的个性品牌!

下载
SELECT *
FROM T_EVENT_MANAGEMENT t
WHERE t.s_ra_time >= to_date('2021-01-01', 'yyyy-mm-dd')
	AND t.s_ra_time <= to_date('2021-01-02', 'yyyy-mm-dd');
--to_date('2021-01-02', 'yyyy-mm-dd') = 2021-01-02 00:00:00 超过2号0点属于2号的数据不会显示

2. 日期和字符转换函数用法(to_date,to_char)

select to_char(sysdate,'yyyy-mm-dd hh24:mi:ss') as nowTime from dual;  --结果:2022-01-26 13:04:53
select to_char(sysdate,'yyyy') as nowYear   from dual; --结果:2022
select to_char(sysdate,'mm')   as nowMonth  from dual; --结果:01
select to_char(sysdate,'dd')   as nowDay    from dual; --结果:26
select to_char(sysdate,'hh24') as nowHour   from dual; --结果:13
select to_char(sysdate,'mi')   as nowMinute from dual; --结果:04
select to_char(sysdate,'ss')   as nowSecond from dual; --结果:53


select to_date('2022-01-26 13:04:53','yyyy-mm-dd hh24:mi:ss')  from dual

3. 查询某天星期几

select to_char(to_date('2022-01-26','yyyy-mm-dd'),'day') from dual;   --结果:星期三

4. 两个日期直接相差天数

select floor(sysdate - to_date('20220101','yyyymmdd')) from dual;

5. 查询出一个空的时间类型

select 1, TO_DATE(null) from dual;

6. 用于计算date1和date2之间有几个月

select months_between(to_date('12-31-2021','MM-DD-YYYY'),to_date('01-31-2021','MM-DD-YYYY')) "MONTHS" FROM DUAL; --结果:11

7. 指定时间的下一个星期几(由char指定)所在的日期,

NEXT_DAY(date,char) 

select   next_day(sysdate,2) from dual;  --当前时间的下一个周一
--1表示星期日,2代表星期一

8. 获取今年的天数

select add_months(trunc(sysdate,'year'), 12) - trunc(sysdate,'year') from dual;
 --闰年的处理方法     
to_char( last_day( to_date('02'|| :year,'mmyyyy') ), 'dd')     
 --如果是28就不是闰年

9. 获取当前时间是今年的第多少天

 select TO_CHAR(SYSDATE,'DDD'),sysdate from dual;

trunc[截断到最接近的日期,单位为天] ,返回的是日期类型

 select sysdate S1,                    
     trunc(sysdate) S2,                 //返回当前日期,无时分秒
     trunc(sysdate,'year') YEAR,        //返回当前年的1月1日,无时分秒
     trunc(sysdate,'month') MONTH ,     //返回当前月的1日,无时分秒
     trunc(sysdate,'day') DAY           //返回当前星期的星期天,无时分秒
   from dual

10. 返回日期列表中最晚日期

select greatest('2021-01-04','2022-01-04','2019-02-04') from dual;  --结果:2022-01-04

11. 计算时间差

 select floor(to_number(sysdate-to_date('2020-11-02 15:55:03','yyyy-mm-dd hh24:mi:ss'))/365) as spanYears from dual        //时间差-年
select ceil(months_between(sysdate,to_date('2020-11-02 15:55:03','yyyy-mm-dd hh24:mi:ss'))) as spanMonths from dual        //时间差-月
select floor(to_number(sysdate-to_date('2020-11-02 15:55:03','yyyy-mm-dd hh24:mi:ss'))) as spanDays from dual             //时间差-天
select floor(to_number(sysdate-to_date('2020-11-02 15:55:03','yyyy-mm-dd hh24:mi:ss'))*24) as spanHours from dual         //时间差-时
select floor(to_number(sysdate-to_date('2020-11-02 15:55:03','yyyy-mm-dd hh24:mi:ss'))*24*60) as spanMinutes from dual    //时间差-分
select floor(to_number(sysdate-to_date('2020-11-02 15:55:03','yyyy-mm-dd hh24:mi:ss'))*24*60*60) as spanSeconds from dual //时间差-秒

12. 查找月的第一天,最后一天

 SELECT Trunc(Trunc(SYSDATE, 'MONTH') - 1, 'MONTH') First_Day_Last_Month,  --最后一月最后一天
       Trunc(SYSDATE, 'MONTH') - 1 / 86400 Last_Day_Last_Month,            --最后一月最后一天
       Trunc(SYSDATE, 'MONTH') First_Day_Cur_Month,                        --当前月第一天
       LAST_DAY(Trunc(SYSDATE, 'MONTH')) + 1 - 1 / 86400 Last_Day_Cur_Month --当前月最后一天
   FROM dual;

13. 查询时间之前的时间(查之后把减号换成加号)

当前时间减去7分钟的时间
select sysdate,sysdate - interval '7' MINUTE from dual

当前时间减去7小时的时间
select sysdate - interval '7' hour from dual

当前时间减去7天的时间
select sysdate - interval '7' day from dual

当前时间减去7月的时间
select sysdate,sysdate - interval '7' month from dual

当前时间减去7年的时间
select sysdate,sysdate - interval '7' year from dual

时间间隔乘以一个数字(也就是8个小时*2倍,16个小时之前的数据)
select sysdate,sysdate - 8 *interval '2' hour from dual

 
获取七天之后的时间
select (sysdate + 7) from dual;

获取前一个月的时间(正数时是加月,负数时为减月)
select add_months(sysdate,-1) from dual;

select sysdate+1 from dual 加一天
select sysdate+1/24 from dual 加1小时
select sysdate+1/(24*60) from dual 加1分钟
select sysdate+1/(24*60*60) from dual 加1秒钟

推荐教程:《Oracle视频教程

相关专题

更多
Word 字间距调整方法汇总
Word 字间距调整方法汇总

本专题整合了Word字间距调整方法,阅读下面的文章了解更详细操作。

2

2025.12.24

任务管理器教程
任务管理器教程

本专题整合了任务管理器相关教程,阅读下面的文章了解更多详细操作。

2

2025.12.24

AppleID格式
AppleID格式

本专题整合了AppleID相关内容,阅读专题下面的文章了解更多详细教程。

0

2025.12.24

csgo视频观看入口合集
csgo视频观看入口合集

本专题整合了csgo观看入口合集,阅读下面的文章了知道更多入口地址。

29

2025.12.24

yandex外贸入口合集
yandex外贸入口合集

本专题汇总了yandex外贸入口地址,阅读下面的文章了解更多内容。

58

2025.12.24

添加脚注通用方法
添加脚注通用方法

本专题整合了添加脚注方法合集,阅读专题下面的文章了解更多内容。

1

2025.12.24

重启电脑教程汇总
重启电脑教程汇总

本专题整合了重启电脑操作教程,阅读下面的文章了解更多详细教程。

3

2025.12.24

纸张尺寸汇总
纸张尺寸汇总

本专题整合了纸张尺寸相关内容,阅读专题下面的文章了解更多内容。

5

2025.12.24

Java Spring Boot 微服务实战
Java Spring Boot 微服务实战

本专题深入讲解 Java Spring Boot 在微服务架构中的应用,内容涵盖服务注册与发现、REST API开发、配置中心、负载均衡、熔断与限流、日志与监控。通过实际项目案例(如电商订单系统),帮助开发者掌握 从单体应用迁移到高可用微服务系统的完整流程与实战能力。

1

2025.12.24

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
SQL 教程
SQL 教程

共61课时 | 3万人学习

Java 教程
Java 教程

共578课时 | 36.8万人学习

oracle知识库
oracle知识库

共0课时 | 0人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号