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数据库程序设计有所帮助。

(0)

相关推荐

  • 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使用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查询最近几天每小时归档日志产生数量的脚本写法,脚本如下所示: 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查询优化日期运算实例详解

     加减日.月.年 在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中查询本月星期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 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实现查询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实现动态查询前一天早八点到当天早八点的数据.分享给大家供大家参考,具体如下: 需要查询前一天早八点到当天早八点的数据 这里是查询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

随机推荐