Oracle 两个字段中6个月期间Q的日期之间的SYSDATE
我试图为两个不同的字段设置过去6个月的日期范围,这两个字段将按月对数据进行分组。我如何设置这样一个中间子句来实现这一点Oracle 两个字段中6个月期间Q的日期之间的SYSDATE,oracle,Oracle,我试图为两个不同的字段设置过去6个月的日期范围,这两个字段将按月对数据进行分组。我如何设置这样一个中间子句来实现这一点 SELECT TO_CHAR(mopend, 'MM-yyyy') AS month, MOPSTATUS, COUNT(*) MTS_COMPLETE_CNT FROM MOPUSER.MOPACTIVITY WHERE UPPER(MOPSTATUS) = 'COMPLETE' AND TO_CHAR(MOPACTIVITY.MOPSTART, 'yyyy-m
SELECT TO_CHAR(mopend, 'MM-yyyy') AS month, MOPSTATUS, COUNT(*) MTS_COMPLETE_CNT
FROM MOPUSER.MOPACTIVITY
WHERE UPPER(MOPSTATUS) = 'COMPLETE'
AND TO_CHAR(MOPACTIVITY.MOPSTART, 'yyyy-mm-dd hh24:mi') BETWEEN TO_CHAR(sysdate,'YYYY-MM-DD')||' 06:02:00' AND TO_CHAR(sysdate,'YYYY-MM-DD')||' 22:59:59'
OR TO_CHAR(MOPACTIVITY.MOPEND, 'yyyy-mm-dd hh24:mi') BETWEEN TO_CHAR(SYSDATE,'YYYY-MM-DD')||' 06:02:00' AND TO_CHAR(SYSDATE,'YYYY-MM-DD')||' 22:59:59'
GROUP BY TO_CHAR(mopend, 'MM-yyyy'), MOPSTATUS
ORDER BY TO_CHAR(mopend, 'MM-yyyy'), MOPSTATUS
我会先回答你问题的一部分,然后根据你的评论,我可以给你完整的问题 以下查询返回要搜索的端点。T1是六个月前的早晨06:02。T2是今天的最后一秒
select sysdate
,add_months( trunc(sysdate) + interval '06:02' hour to minute, -6) as t1
, trunc(sysdate) + interval '23:59:59' hour to second as t2
from dual;
The above query returns the following (using yyyy-mm-dd hh24:mi:ss):
sydate: 2014-04-11 13:54:28
t1: 2013-10-11 06:02:00
t2: 2014-04-11 23:59:59
如果我理解正确,这就是您要搜索的时间段?
对于答案的第二部分,我需要知道以下内容:
MOPSTART
或MOPEND
中的任何一个是否可以为空?如果是,您希望如何处理这些行 JAN FEB MAR APR MAY JUN
a: |-------------------|
b: |---|---|
c: |---|
d: |-----------|
e: |--------|