一周之间的PL/SQL

Dyl*_*son 1 sql oracle plsql oracle11g

我需要编写一个触发器,防止在星期五下午5点到星期一上午9点​​之间插入.

我是否正在走下正轨,以为我需要从sysdate中提取日期/时间并按照这样的方式做一些事情

if
extract (day from sysdate) =>5 
AND extract (hour from sysdate) =>17 
AND extract (day from sysdate) =< 1 
AND extract (hour from sysdate) =<9
THEN
...
Run Code Online (Sandbox Code Playgroud)

如果这是可怕的走错了,请告诉我.

我觉得令人沮丧的是,我对"指定星期几之间"的搜索结果毫无结果,也许有人可以建议更好的搜索方法?

Szi*_*any 6

我会尝试:

IF TO_NUMBER( TO_CHAR( SYSDATE, 'DHH24' ) ) > 516 OR
   TO_NUMBER( TO_CHAR( SYSDATE, 'DHH24' ) ) < 109 THEN
Run Code Online (Sandbox Code Playgroud)

甚至只是

IF NOT TO_NUMBER( TO_CHAR( SYSDATE, 'DHH24' ) ) BETWEEN 109 AND 516 THEN
Run Code Online (Sandbox Code Playgroud)

您需要注意,D星期几的值取决于本地日历,因此例如一周的第一天可能是星期日或星期一.检查您的NLS设置.