2011-05-12 3 views

Répondre

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

Une alternative est la fonction EXTRACT qui est une norme ANSI et travaille également sur d'autres SGBD, mais il nécessite également l'utilisation de current_timestamp (également ANSI) au lieu de sysdate

SELECT extract(hour from current_timestamp) 
FROM dual 
+1

pour certaines personnes raison n'aiment pas extrait. mais, je le trouve très simple et élégant. – clq

1

des moyens supplémentaires d'utiliser DATEPART type de fonction dans l'oracle

DATEPART: -Weekday

--Ce donnerait le jour de la semaine pour une référence jour de début

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

Je pense que c'est ce que vous cherchez

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