oracle当天⼋点,oracle实现动态查询前⼀天早⼋点到当天早⼋
点的数据功能⽰例
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数据库程序设计有所帮助。
时间: 2019-10-30
下⾯通过⼀个查询语句给⼤家介绍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按天,周,⽉,季度,年查询排序 天--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查询最近⼏天每⼩时归档⽇志产⽣数量的脚本写法,脚本如下所⽰: 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实现查询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中,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
⽇报数据统计中会⽤到当天数据的查询,下列就是⽇期要对应的条件: 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 取上周⼀到周末的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中trunc函数用法
周使⽤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
复制代码 代码如下: 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
在SQL Server中 每⼀个database裡都有⼀个系统所产⽣的table sysobjects这⼀个table中记录了database中所有的table名称 我们可以⽤下⾯的SQL语法作查询的动作 复制代码 代码如下: Select Name,id from sysobjects where xtype = 'U' 其中xtype='U'代表使⽤的table,若是使⽤xtype='S' 则代表系统预设的table 在系统table中还有⼀个名叫syscolumns的table 他记录了栏
⾸先,看⼀下sql server,之前我们都通过前台⽤户选择⼀个起始时间和⼀个结束时间(以⽇为最⼩单位),然后来作为条件进⾏查询,如果直接通过"between starttime and endtime"来作为条件的话,发现会⾃动将"2009-06-17"转化为" 2009-06-17 00:00:00",于是如下查询条件" between '2009-06-16' and '2009-06-17'",只能得到16⽇的数据,1
本⽂实例讲述了Oracle中scott表结构与简单查询的⽅法.分享给⼤家供⼤家参考.具体分析如下: 1.scott⽤户的表的结构 查看表结构 desc 表名;//desc emp; emp表: SQL> desc emp; 名称 是否为空? 类型 ----------------- -------- ------------ EMPNO NOT NULL NUMBER(4)雇员编号 ENAME VARCHAR2(10) 雇员姓名 JOB VARCHAR2(9) 雇员职位 MGR NUMBER(
查询Oracle正在执⾏的sql语句及执⾏该语句的⽤户 SELECT b.sid oracleID, b.username 登录Oracle⽤户名, b.serial#, spid 操作系统ID, paddr, sql_text 正在执⾏的SQL, b.machine 计算机名 FROM v$process a, v$session b, v$sqlarea c WHERE a.addr = b.paddr AND b.sql_hash_value = c.hash_value 其它⽹友给出的正
instr(title,'⼿册')>0 相当于 title like '%⼿册%' instr(title,'⼿册')=1 相当于 title like '⼿册%' instr(title,'⼿册')=0 相当于 title not like '%⼿册%' t表中将近有1100万数据,很多时候,我们要进⾏字符串匹配,在SQL语句中,我们通常使⽤like来达到我们搜索的⽬标.但经过实际测试发现,like的效率与instr函数差别相当⼤.下⾯是⼀些测试结果: SQL> set timing on
注意:对 rownum(伪列) 只能使⽤ < 或 <=, ⽽⽤ =, >, >= 都将不能返回任何数据 例:查询⼯资前20名的员⼯姓名,⼯资 ,⼯资由⾼到低 Select rownum,first_name,salary from (Select first_name, salary from employees Group by salary desc) Where rownum=<20 如果直接按如下查询得下图结果,显然不正确的,rownum(伪列) 是按查询顺序来排列的
1: 如何判断字段的值⾥⾯:那些数据包含⼩写字母或⼤⼩字母 判断字段NAME的值⾥⾯有⼩写字母的记录 ⽅式1: SELECT NAME FROM TEST WHERE regexp_like(NAME,'[[:lower:]]'); ⽅式2 SELECT NAME FROM TEST WHERE regexp_like(NAME,'[a-z]'); 判断字段NAME的值⾥⾯有⼤写字母的记录 ⽅式1: SELECT NAME FROM TEST WHERE regexp_like(NAME,'[[
Oracle中group by⽤法 在select 语句中可以使⽤group by ⼦句将⾏划分成较⼩的组,⼀旦使⽤分组后select操作的对象变为各个分组后的数据,使⽤聚组函数返回的是每⼀个组的汇总信息. 使⽤having⼦句 限制返回的结果集.group by ⼦句可以将查询结果分组,并返回⾏的汇总信息Oracle 按照group by ⼦句中指定的表达式的值分组查询结果. 在带有group by ⼦句的查询语句中,在select 列表中指定的列要么是group by ⼦句中指定的列,要么包
如下的实际例⼦代码可以将查询的结果放⼊到⼀张⾃定义表中,同时可以再从这个⾃定义的表中查询数据: with AA as (SELECT TICKETNUMBER, TICKETTYPE, VERSIONNUMBER, STAGENAME, DTANALYZED, GISPROCESSID, PROCESSSTATUS, DTRECEIVED, USERID, USERNAME, FIRSTNAME, LASTNAME, NUMBEROFDAYS FROM REPORT_PERFORMANCEOFA

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。