web-dev-qa-db-fra.com

Oracle équivalent à SQL Server DATEPART

Nous devons extraire l'HOUR d'une colonne DATETIME (en attendant que les valeurs de 0 à 23 soient renvoyées).

Existe-t-il un équivalent Oracle de la fonction SQL Server DATEPART?

18
Raj More
 SELECT to_number(to_char(sysdate, 'HH24')) FROM DUAL
19

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

SELECT extract(hour from current_timestamp) 
FROM dual
24

Je pense que c'est ce que vous cherchez

select to_char(current_timestamp,'HH24') from dual;
2
Ranjith M R

pour d'autres façons d'utiliser le type de fonction DATEPART dans Oracle

DATEPART: -Weekday

- Cela donnerait le jour de la semaine pour un jour de début de référence

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
psaraj12