欢迎来到Doc100.Net免费学习资源知识分享平台!
您的位置:首页 > 程序异常 >

求一条关于 oracle 时间查询的 sql 语句,该怎么处理

更新时间: 2014-01-05 02:11:09 责任编辑: Author_N1

 

求一条关于 oracle 时间查询的 SQL 语句
表 t_monitor_log

id  date_log

1   2012-08-10 13:39:56

2   2012-08-10 13:39:57

3   2012-08-10 13:39:58

4   2012-09-10 13:39:56

5   2012-09-10 13:39:56

6   2012-09-11 13:39:56

7   2012-09-11 13:39:57

8   2012-09-11 13:39:57

9   2012-12-01 12:00:00

10  2012-12-01 13:00:00


查询  当天的个数, 当月的个数,当前季度的个数。

比如当前时间为2012-09-11日,则显示结果如下:

当天: 3个
当月: 5个

当前季度:8个




--参考方法--
select count(date_log) 当天 from t_monitor_log where trunc(date_log)=trunc(sysdate)

select count(date_log) 当月 from monitor_log where add_months(date_log, 1)>sysdate

select count(date_log) 当前季度 from t_monitor_log where add_months(date_log, 3)>sysdate

--参考方法--

select count(*) 当天数量 from 你的表 where trunc(date_log)=trunc(sysdate);
select count(*) 当月数量 from 你的表 where to_char(date_log,'yyyymm')=to_char(sysdate,'yyyymm');
select count(*) 当前季度 from 你的表 where to_char(date_log,'yyyy')=to_char(sysdate,'yyyy') and trunc((to_char(date_log,'mm')+2)/3)=trunc((to_char(sysdate,'mm')+2)/3);

--参考方法--
select t1.*, t2.*, t3.* from 
(select count(date_log) 当天 from t_monitor_log where trunc(date_log)=trunc(sysdate))t1,
(select count(date_log) 当月 from t_monitor_log where add_months(date_log, 1)>sysdate)t2,
(select count(date_log) 当前季度 from t_monitor_log where add_months(date_log, 3)>sysdate)t3

--参考方法--

--扫描次数太多鸟。用这个
SELECT COUNT(CASE
               WHEN TRUNC(DATE_LOG) = TRUNC(SYSDATE) THEN
                1
               ELSE
                NULL
             END) 当天,
       COUNT(CASE
               WHEN ADD_MONTHS(DATE_LOG, 1) > SYSDATE THEN
                1
               ELSE
                NULL
             END) 当月,
       COUNT(CASE
               WHEN ADD_MONTHS(DATE_LOG, 3) > SYSDATE THEN
上一篇:上一篇
下一篇:下一篇

 

随机推荐程序问答结果

 

 

如对文章有任何疑问请提交到问题反馈,或者您对内容不满意,请您反馈给我们DOC100.NET论坛发贴求解。
DOC100.NET资源网,机器学习分类整理更新日期::2014-01-05 02:11:09
如需转载,请注明文章出处和来源网址:http://www.doc100.net/bugs/t/6713/
本文WWW.DOC100.NET DOC100.NET版权所有。