JBTALKS.CC

标题: 求救 Oracle SQL (AM/PM 问题) [打印本页]

作者: smallkes    时间: 2012-7-19 11:28 PM
标题: 求救 Oracle SQL (AM/PM 问题)
CREATE OR REPLACE TRIGGER Guest_Change_In_WorkingHour
           BEFORE INSERT OR UPDATE OR DELETE ON guest
        BEGIN
           IF  TO_NUMBER(TO_CHAR(SYSDATE,'hh24')) < 8 -- cant do anything before 8:00am
               OR TO_NUMBER(TO_CHAR(SYSDATE,'hh24')) >= 5
                  -- changes must be made BEFORE 5:00pm
                OR TO_CHAR(SYSDATE,'dy') in ('sun','sat') THEN -- nothing on weekends
        RAISE_APPLICATION_ERROR (-20000, 'Satff changes only allowed during business hours.');
        END IF;
       END;
       /
这个是在8AM 到 5PM 才能 insert, update 和 delete 。
我的问题是 4.00pm 能insert 但是 时间变成AM 时 (4.00am),也能insert。
这个trigger ignore 掉 AM 和 PM。 谁能帮我解决??感激不尽~
作者: 游戏玩家    时间: 2012-7-20 12:05 AM
< 8 (8am ??)
>= 5 (5am??)
24小时制?
作者: smallkes    时间: 2012-7-20 02:23 AM
回复 2# 游戏玩家


    对,是24HR 的。如果 5 换成 17, 问题还是一样。。
作者: 游戏玩家    时间: 2012-7-20 09:36 PM
回复 3# smallkes


    貌似 BEFORE INSERT OR UPDATE OR DELETE 需要分开成3个trigger




欢迎光临 JBTALKS.CC (https://www.jbtalks.my/) Powered by Discuz! X2.5