2011-05-12 112 views

回答

14
SELECT to_number(to_char(sysdate, 'HH24')) FROM DUAL 
20

另一種方法是將提取功能,其是一個ANSI標準,並且還適用於其他DBMS,但它也要求使用CURRENT_TIMESTAMP(也ANSI)的代替SYSDATE

SELECT extract(hour from current_timestamp) 
FROM dual 
+1

由於某種原因,人們不喜歡的提取物。但是,我覺得它非常簡單和優雅。 – clq 2015-10-15 14:09:41

1

爲其他方法在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;  
1

我認爲這是你在找什麼

select to_char(current_timestamp,'HH24') from dual;