Skip to Main Content

SQL & PL/SQL

Announcement

For appeals, questions and feedback about Oracle Forums, please email oracle-forums-moderators_us@oracle.com. Technical questions should be asked in the appropriate category. Thank you!

ORA-01851: minutes must be between 0 and 59

459971Oct 13 2005 — edited Oct 13 2005
IF I EXECUTE THIS STATEMENT GOES WELL.....


SELECT n_moments.moment AS moment
FROM
(SELECT TO_DATE (( moments.moment|| ' ' || hours.HOUR), 'yyyyMMdd HH24:mi:ss') AS moment
FROM (SELECT TO_CHAR ((TO_DATE ('20040101', 'yyyyMMdd') - 1) + days, 'yyyyMMdd') AS moment
FROM (SELECT ROW_NUMBER() OVER (ORDER BY a.a) days
FROM
(SELECT 1 a FROM DUAL GROUP BY CUBE (1,2,3,4,5,6,7)) a,
(SELECT 1 FROM DUAL GROUP BY CUBE (1,2,3,4,5,6,7)) b
)
WHERE days <= TO_DATE('20041231', 'yyyyMMdd')+1 - TO_DATE('20040101', 'yyyyMMdd')
AND (TO_DATE('20040101','yyyyMMdd') - 1) + days >=
(SELECT MIN (moment)
FROM occupation
WHERE cpy_code = '00'
AND node_type = 30
AND node_code = '001000307000000')
AND (TO_DATE('20040101', 'yyyyMMdd') - 1) + days <= SYSDATE) moments,
(SELECT NHours.hour || PartHour.HOUR as HOUR
from
( SELECT ':' || to_char(seq-1,'fm9') || '0:00' as HOUR
from (select * from (select level seq from dual connect by level <= 6))) PartHour,
(select seq - 1 HOUR from (select level seq from dual connect by level <= 24)) NHours
) hours
)n_moments
ORDER BY 1




BUT ............. WHEN I EXECUTE ALL THE SQL SENTENCE.... GOES BAD... GIVES ME THIS ERROR ....

<<ORA-01851: minutes must be between 0 and 59>>



------------------
select MAX (counter) AS cont, TO_CHAR (moment, 'HH24') AS HOUR
from
(
SELECT n_moments.moment AS moment,
sum(
(
SELECT NVL(SUM(o57.COUNTER), 0) as counter from occupation o57
WHERE o57.cpy_code = '00'
AND o57.node_type = 30
AND o57.node_code = '001000307000000'
AND o57.ZONE IN
(SELECT ZONE FROM zone_virtual_zone zvz
WHERE
o57.cpy_code = zvz.cpy_code
AND zvz.cpy_code = '00'
AND zvz.virtual_zone = '000000'
)
AND o57.title_type is not null
AND o57.title_use = titles.title_use
AND o57.moment =
(SELECT MAX (o60.moment) FROM occupation o60
WHERE
o60.cpy_code = o57.cpy_code
AND o60.node_type =o57.node_type
AND o60.node_code = o57.node_code
AND o60.ZONE = o57.zone
AND o60.title_type is not null
AND o60.title_use = o57.title_use
AND o60.moment <= n_moments.moment
)
)
) as counter
FROM (SELECT UNIQUE (atc.title_use) AS title_use
FROM action_title_cfg atc LEFT OUTER JOIN title_use_cfg tuc ON (atc.title_use = tuc.title_use )
WHERE atc.cpy_code = '00'
AND atc.action_code = 'TRA'
AND atc.action_type IN ('ENT', 'SAL')
AND atc.allowed = 1
) titles,
(SELECT TO_DATE (( moments.moment|| ' ' || hours.HOUR), 'yyyyMMdd HH24:mi:ss') AS moment
FROM (SELECT TO_CHAR ((TO_DATE ('20040101', 'yyyyMMdd') - 1) + days, 'yyyyMMdd') AS moment
FROM (SELECT ROW_NUMBER() OVER (ORDER BY a.a) days
FROM
(SELECT 1 a FROM DUAL GROUP BY CUBE (1,2,3,4,5,6,7)) a,
(SELECT 1 FROM DUAL GROUP BY CUBE (1,2,3,4,5,6,7)) b
)
WHERE days <= TO_DATE('20041231', 'yyyyMMdd')+1 - TO_DATE('20040101', 'yyyyMMdd')
AND (TO_DATE('20040101','yyyyMMdd') - 1) + days >=
(SELECT MIN (moment)
FROM occupation
WHERE cpy_code = '00'
AND node_type = 30
AND node_code = '001000307000000')
AND (TO_DATE('20040101', 'yyyyMMdd') - 1) + days <= SYSDATE) moments,
(SELECT NHours.hour || PartHour.HOUR as HOUR
from
( SELECT ':' || to_char(seq-1,'fm9') || '0:00' as HOUR
from (select * from (select level seq from dual connect by level <= 6))) PartHour,
(select seq - 1 HOUR from (select level seq from dual connect by level <= 24)) NHours
) hours
)n_moments
group by moment
)
group by TO_CHAR (moment, 'HH24')





IF I REEPLACE


AND o60.moment <= n_moments.moment


BY ....
AND o60.moment <= to_date('20040101 00:00:01', 'yyyyMMdd hh24:mi:ss')


GOES WELL ... BUT I NEED TO USE THIS LINE ....
o60.moment <= n_moments.moment


HELP ME PLEASE!!!
Comments
Locked Post
New comments cannot be posted to this locked post.
Post Details
Locked on Nov 10 2005
Added on Oct 13 2005
5 comments
2,935 views