oracle实现动态查询前一天早八点到当天早八点的数据功能示例
本文实例讲述了oracle实现动态查询前一天早八点到当天早八点的数据。分享给大家供大家参考,具体如下:
需要查询前一天早八点到当天早八点的数据
这里是查询sql语句
SELECT DEPT_ID, COUNT( * ) DID FROM "MES_MACH_CALL_EVENT" WHERE CALL_TIME >= trunc(sysdate-1)+8/24 AND CALL_TIME <= trunc(sysdate)+8/24 GROUP BY DEPT_ID
现在单独来看一下获取系统当天八点和前一天八点的方法
SELECT trunc(sysdate)+8/24 FROM DUAL; SELECT trunc(sysdate-1)+8/24 FROM DUAL;
+8/24为24小时制中的早八点
其中trunc函数的用法为
【trunc(for dates)】TRUNC()函数处理日期
语法格式:TRUNC(date[,fmt])
其中:date 一个日期值;fmt 日期格式。
该日期将按指定的日期格式截取;忽略它则由最近的日期截取。
示例:
select trunc(sysdate) from dual;–2017/2/13,返回当前时间 select trunc(sysdate,'yy') from dual;–2017/1/1,返回当年第一天 select trunc(sysdate,'mm') from dual;–2017/2/1,返回当月的第一天 select trunc(sysdate,'d') from dual;–2017/2/12,返回当前星期的第一天,即星期天 select trunc(sysdate,'dd') from dual;–2017/2/13,返回当前日期,今天是2017/2/13 select trunc(sysdate ,'HH24') from dual;–2017/2/13 15:00:00,返回本小时的开始时间 select trunc(sysdate ,'MI') from dual;–2017/2/13 15:13:00,返回本分钟的开始时间
更多关于Oracle相关内容感兴趣的读者可查看本站专题:《Oracle常用函数汇总》、《Oracle日期与时间操作技巧总结》及《php+Oracle数据库程序设计技巧总结》
希望本文所述对大家Oracle数据库程序设计有所帮助。
相关推荐
-
Oracle中查询本月星期5的所有日期列表的语句
复制代码 代码如下: SELECT * FROM (SELECT TRUNC(SYSDATE, 'mm') + ROWNUM - 1 DAYS FROM (SELECT LEVEL FROM DUAL CONNECT BY LEVEL <= TRUNC(LAST_DAY(SYSDATE)) - TRUNC(SYSDATE, 'mm') + 1)) WHERE TO_CHAR(DAYS, 'd') = '6' 作者 scorpio3k
-
Oracle查询最近几天每小时归档日志产生数量的脚本写法
下面给大家分享Oracle查询最近几天每小时归档日志产生数量的脚本写法,脚本如下所示: SELECT SUBSTR(TO_CHAR(first_time, 'MM/DD/RR HH:MI:SS'),1,5) Day, SUM(DECODE(SUBSTR(TO_CHAR(first_time, 'MM/DD/RR HH24:MI:SS'),10,2),'00',1,0)) H00, SUM(DECODE(SUBSTR(TO_CHAR(first_time, 'MM/DD/RR HH24:MI:SS
-
Oracle 获取上周一到周末日期的查询sql语句
复制代码 代码如下: -- Oracle 取上周一到周末的sql -- 这样取的是 在一周内第几天,是以周日为开始的 select to_char(to_date('20130906','yyyymmdd'),'d') from dual; --结果:6 注释:2013.09.06是周五,为本周的第六天 select to_char(sysdate+(2-to_char(sysdate,'d'))-7,'yyyymmdd') from dual;---上周一 select to_char(sys
-
oracle使用to_date查询一周的第一天日期
周使用IW方式计算,如果一年当中第52周别之后至当年的12月31日之间,还有大于或等于4天的话,则定为当年的第53周,否则剩余这些天数被归为下一年的第1周 复制代码 代码如下: CREATE OR REPLACE FUNCTION f_week_to_date(a_week varchar2) RETURN CHAR IS v_first_date char(10); v_date_of_week number(1); BEGIN select to_char(to_dat
-
oracle实现按天,周,月,季度,年查询排序方法
oracle按天,周,月,季度,年查询排序 天--to_char(t.start_time,'YYYY-MM-DD') 周 --to_char(t.start_time,'YYYY'),to_char(t.start_time,'IW') 月度--to_char(t.start_time,'YYYY-MM') 季度--to_char(t.start_time,'YYYY'),to_char(t.start_time,'Q') 年度--to_char(t.start_time,'YYYY') 按天
-
Oracle查询优化日期运算实例详解
加减日.月.年 在Oracle中,date类型可以直接加减天数,而加减月份要用add_months函数. select a.hiredate 雇用日期, a.hiredate + 5 加5天, a.hiredate - 5 减5天, add_months(hiredate, 5) 加5个月, add_months(hiredate, -5) 减5个月, add_months(hiredate, 5 * 12) 加5年, add_months(hiredate, -5 * 12) 减5年 fro
-
oracle 查询当天数据的sql条件写法
日报数据统计中会用到当天数据的查询,下列就是日期要对应的条件: between to_date(to_char(sysdate,'yyyy-mm-dd') || ' 00:00:01','yyyy-mm-dd hh24:mi:ss') and to_date(to_char(sysdate,'yyyy-mm-dd') || ' 23:59:59','yyyy-mm-dd hh24:mi:ss'); Oracle 字段类型为varchar2,格式要与格式化的样式匹配 当天 select * fr
-
Oracle实现查询2个日期所跨过的月份列表/日期列表的方法分析
本文实例讲述了Oracle实现查询2个日期所跨过的月份列表/日期列表的方法.分享给大家供大家参考,具体如下: 1.基本逻辑公式: Select Rownum, 开始日期+Rownum-1 from dual connect by rownum< 结束日期-开始日期 +2; 2.查询2个日期所跨过的日期yyyy-mm-dd列表: 查询结果: SQL代码(开始时间:2019-01-22,结束时间:2019-01-02): Select Rownum, to_date('2019-01-02', 'y
-
oracle查询截至到当前日期月份所在年份的所有月份
下面通过一个查询语句给大家介绍oracle查询截至到当前日期月份所在年份的所有月份,具体代码如下所示: SELECT to_number(TO_CHAR(add_months(trunc(sysdate, 'yy'), ROWNUM - 1), 'MM')) as month FROM DUAL CONNECT BY ROWNUM <= (select months_between(trunc(sysdate, 'mm'), trunc(sysdate, 'yy')) + 1 from dual
-
oracle实现动态查询前一天早八点到当天早八点的数据功能示例
本文实例讲述了oracle实现动态查询前一天早八点到当天早八点的数据.分享给大家供大家参考,具体如下: 需要查询前一天早八点到当天早八点的数据 这里是查询sql语句 SELECT DEPT_ID, COUNT( * ) DID FROM "MES_MACH_CALL_EVENT" WHERE CALL_TIME >= trunc(sysdate-1)+8/24 AND CALL_TIME <= trunc(sysdate)+8/24 GROUP BY DEPT_ID 现在单
-
Oracle中简单查询、限定查询、数据排序SQL语句范例和详细注解
一.简单查询 SQL(Structured Query Language) 结构化查询语言,是一种数据库查询和程序设计语言,用于存取数据以及查询.更新和管理关系数据库系统.ANSI(美国国家标准学会)声称,SQL是关系数据库管理系统的标准语言. Oracle数据库之所以发展的很好,主要也是因为Oracle是全世界最早采用SQL语句的数据库产品. SQL功能强大,概括起来,它可以分成以下几组: 复制代码 代码如下: DML(Data Manipulation Language) 数据操作语言,用于
-
oracle常用sql查询语句部分集合(图文)
Oracle查询语句 select * from scott.emp ; 1.--dense_rank()分析函数(查找每个部门工资最高前三名员工信息) select * from (select deptno,ename,sal,dense_rank() over(partition by deptno order by sal desc) a from scott.emp) where a<=3 order by deptno asc,sal desc ; 结果: --rank()分析函数(
-
用非动态SQL Server SQL语句来对动态查询进行执行
此文章主要向大家讲述的是非动态SQL ServerSQL语句执行动态查询,在实际操作中我尝试在一个存储过程中,来进行传递一系列以逗号划定界限的值,来对结果集进行限制.但是无论什么时候,我在IN子句中使用变量,都会得到错误信息. 是否存在一种不执行动态SQL语句也能完成查询的方式呢? 我尝试在一个存储过程中传递一系列以逗号划定界限的值,以限制结果集.但是无论什么时候,我在IN子句中使用变量,都会得到错误信息.是否存在一种不执行动态SQL ServerSQL语句也能完成查询的方式呢? 专家解答: 这
-
Spring Data JPA实现动态查询的两种方法
前言 一般在写业务接口的过程中,很有可能需要实现可以动态组合各种查询条件的接口.如果我们根据一种查询条件组合一个方法的做法来写,那么将会有大量方法存在,繁琐,维护起来相当困难.想要实现动态查询,其实就是要实现拼接SQL语句.无论实现如何复杂,基本都是包括select的字段,from或者join的表,where或者having的条件.在Spring Data JPA有两种方法可以实现查询条件的动态查询,两种方法都用到了Criteria API. Criteria API 这套API可用于构建对数据
-
Spring Data JPA中的动态查询实例
spring Data JPA大大的简化了我们持久层的开发,但是实际应用中,我们还是需要动态查询的. 比如,前端有多个条件,这些条件很多都是可选的,那么后端的SQL,就应该是可以定制的,在使用hibernate的时候,可以通过判断条件来拼接SQL(HQL),当然,Spring Data JPA在简化我们开发的同时,也是提供了支持的. 通过实现Criteria二实现的动态查询,需要我们的Repo接口继承JpaSpecificationExecutor接口,这是个泛型接口. 然后查询的时候,传入动态
-
Oracle实现分页查询的SQL语法汇总
本文实例汇总了Oracle实现分页查询的SQL语法,整理给大家供大家参考之用,详情如下: 1.无ORDER BY排序的写法.(效率最高) 经过测试,此方法成本最低,只嵌套一层,速度最快!即使查询的数据量再大,也几乎不受影响,速度依然! sql语句如下: SELECT * FROM (Select ROWNUM AS ROWNO, T.* from k_task T where Flight_date between to_date('20060501', 'yyyymmdd') and to_d
-
Oracle 多参数查询语句
废话不多说了,直接给大家贴代码了,具体代码如下所示: CREATE OR REPLACE FUNCTION f_get_param( IN_PARAM IN VARCHAR2, IN_FLAG IN VARCHAR2) RETURN VARCHAR2 IS RESULT VARCHAR2(500); v_leng NUMBER; v_left NUMBER; v_right NUMBER; v_param VARCHAR2(200); v_param1 VARCHAR2(200); BEGION
-
Oracle 数据库特殊查询总结
1. 查询本节点及本节点以下的所有节点: select * from table1 c start with c.p_id='0000000' connect by prior c.id=c.p_id and c.use_yn='Y' order by id ; 2. 查询节点中所有的层级关系 SELECT RPAD( ' ', 2*(LEVEL-1), '-' ) || DEPNAME "DEPNAME",CONNECT_BY_ROOT DEPNAME "ROOT"
-
Oracle数据库并行查询出错的解决方法
Oracle的并行查询是使用多个操作系统级别的Server Process来同时完成一个SQL查询,本文讲解Oracle数据库并行查询出错的解决方法如下: 1.错误描述 ORA-12801: 并行查询服务器P007中发出错误信号 ORA-01722:无效数字 12801.00000 -"error signaled in parallel query server %s" *Cause: A parallel query server reached an exception cond
随机推荐
- 看到一个JS正则的题
- 让Nginx支持shtml格式的配置方法
- PHP url的pathinfo模式加载不同控制器的简单实现
- 在Python中操作文件之seek()方法的使用教程
- MySQL笔记之函数查询的使用
- VsCode新建VueJs项目的详细步骤
- asp+javascript实现404页的处理转换
- Ruby使用C++扩展实例(含C++扩展代码示例)
- Lua的堆栈浅析
- 特殊字符、常规符号及其代码对照表
- java连接sql server 2008数据库代码
- MySQL 配置优化(多个参数)
- jquery+ajax实现注册实时验证实例详解
- jquery怎样实现ajax联动框(一)
- usernetschedule进程分析
- logo_1.exe 变种病毒解决方案
- Python利用QQ邮箱发送邮件的实现方法(分享)
- 内核线程优先级设置的方法介绍
- C#实现抓取和分析网页类实例
- Android PopupWindow全屏详细介绍及实例代码