Précédent   Forum des professionnels en informatique > Bases de données > Oracle > PL/SQL
PL/SQL Forum d'entraide sur le PL/SQL
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 18/10/2004, 16h17   #1
Invité régulier
 
Inscription : octobre 2003
Messages : 14
Détails du profil
Informations forums :
Inscription : octobre 2003
Messages : 14
Points : 6
Points : 6
Par défaut PL/SQL TYPE DE DONNEES HEURE

bonjour,
je récupère dans une varchar l'heure suivante
<heure>14:20:10</heure>

ensuite je souhaiterai comparer cette donnée en tant que donnée de type heure,

exemple inventé (19 heures, 7 heures)

Code :
1
2
3
 IF heureLue < 19 AND> 7 THEN
instructions
END IF.
comment dois je convertir cette varchar heureLue en type de donnée heure de façon à ce que je puisse faire des comparaisons ?

merci bcp, murielle :
mimi_été est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/10/2004, 16h26   #2
Rédacteur

 
Avatar de SheikYerbouti
 
Inscription : mai 2003
Messages : 6 533
Détails du profil
Informations forums :
Inscription : mai 2003
Messages : 6 533
Points : 6 469
Points : 6 469
Vous pouvez toujours extraire les deux premiers caractères (l'heure) dans une variable numérique :

Code :
1
2
3
4
5
6
7
DECLARE
  heure number(2);
BEGIN
  heure := SUBSTR( la_variable, 1, 2 ) ;
  IF heure < ... OR heure > ... Then
  ...
END ;
__________________
Rédacteur Oracle (Oracle ACE)
Guide Oracle ,Guide PL/SQL, Guide Forms 9i/10g, Index de recherche
Je ne réponds pas aux questions techniques par MP
Blogs: Forms-PL/SQL-J2EE - Forms Java Beans
SheikYerbouti est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/10/2004, 16h27   #3
Expert Confirmé
 
Avatar de LeoAnderson
 
Inscription : septembre 2004
Messages : 2 942
Détails du profil
Informations forums :
Inscription : septembre 2004
Messages : 2 942
Points : 2 972
Points : 2 972
Le plus simple est de convertir la chaine en date/heure puis en nombre :
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
 
declare 
  v_ChHeure VARCHAR2(30) := '<heure>14:20:10</heure>';
  v_Heure   DATE;
  v_ch      VARCHAR2(30);
  v_H       NUMBER; 
begin
   v_Ch := SubStr( v_ChHeure, 8, Length(v_ChHeure) ); -- 14:20:10</heure>
   v_Ch := SubStr( v_Ch,      1, 8);                  -- 14:20:10
   v_Heure := To_Date(v_Ch, 'HH24:MI:SS');
 
   v_H := TO_NUMBER( TO_CHAR(v_Heure, 'HH24') );      -- v_h est alors un entier contenant l'heure : 14
 
   IF V_H > 19 THEN
      NULL;
   END IF;
end;
LeoAnderson est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/10/2004, 16h33   #4
Invité régulier
 
Inscription : octobre 2003
Messages : 14
Détails du profil
Informations forums :
Inscription : octobre 2003
Messages : 14
Points : 6
Points : 6
Par défaut PL/SQL TYPE DE DONNEES HEURE


merci beaucoup
mimi_été est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 13h05.


 
 
 
 
Partenaires

Hébergement Web