DATETIME列からHOURを取得する必要があります(0〜23の値が返されることを期待しています)。
SQL ServerのDATEPART関数に相当するOracleはありますか?
SELECT to_number(to_char(sysdate, 'HH24')) FROM DUAL
代替は、ANSI標準であり、他のDBMSでも機能するEXTRACT関数ですが、sysdateの代わりにcurrent_timestamp(ANSI)も使用する必要があります
SELECT extract(hour from current_timestamp)
FROM dual
これがあなたが探しているものだと思う
select to_char(current_timestamp,'HH24') from dual;
oracleでDATEPART種類の関数を使用する追加の方法について
DATEPART:-Weekday
-これにより、参照開始日として週の日が与えられます
DECLARE
Start_day date:=to_date('30-03-2012','DD-MM-YYYY');
check_date DATE:=SYSDATE;
Day_of_week NUMBER;
i NUMBER;
BEGIN
i:=to_char(Start_day,'D');
day_of_week:=mod((to_char(check_date,'D') -(i-1)+7),7);
if day_of_week=0
THEN
day_of_week:=7;
end if;
dbms_output.put_line(day_of_week);
END;