IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

SQL Oracle Discussion :

équivalent SEC_TO_TIME en oracle


Sujet :

SQL Oracle

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Mars 2007
    Messages
    193
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 193
    Par défaut équivalent SEC_TO_TIME en oracle
    Salut!!

    je voudrais savoir quel est l'équivalent de SEC_TO_TIME en Oracle?

    SEC_TO_TIME permet de convertir des secondes en heures, minutes ,secondes.

    Merci pour votre aide!!

  2. #2
    Expert confirmé
    Avatar de laurentschneider
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Décembre 2005
    Messages
    2 944
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Finance

    Informations forums :
    Inscription : Décembre 2005
    Messages : 2 944
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    SQL> select numtodsinterval(9999,'SECOND') from dual;
     
    NUMTODSINTERVAL(9999,'SECOND')
    ---------------------------------------------------------------------------
    +000000000 02:46:39.000000000

  3. #3
    Expert confirmé
    Avatar de laurentschneider
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Décembre 2005
    Messages
    2 944
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Finance

    Informations forums :
    Inscription : Décembre 2005
    Messages : 2 944
    Par défaut
    si tu recherches un varchar2, il te faut un peu de formattage

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
     
    SQL> create or replace function sec_to_time(seconds number)
      2  return varchar2 is
      3  i interval day to second;
      4  begin
      5  i:=numtodsinterval(seconds,'SECOND');
      6  return extract(day from i)*24+extract(hour from i)||':'||
      7      abs(extract(minute from i))||':'||
      8      abs(extract(second from i));
      9  end;
     10  /
     
    Function created.
     
    SQL> 
    SQL> select sec_to_time(-123456) from dual;
     
    SEC_TO_TIME(-123456)
    --------------------------------------------------------------------------------
    -34:17:36

  4. #4
    Membre confirmé
    Inscrit en
    Mars 2007
    Messages
    193
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 193
    Par défaut
    J'ai essayé ta 1ère solution et ça ne marche que si je lui fournis le nombre de secondes entier or dans mon cas je veux convertir un champ de type (date_fin-date_début) qui retourne des valeurs de ce genre:

    0,119247685185185
    0,0960069444444444
    0,0281018518518519
    0,0143171296296296

    Est ce que tu aurais une idée sur une éventuelle solution?!!

    Merci!!

  5. #5
    Expert confirmé
    Avatar de laurentschneider
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Décembre 2005
    Messages
    2 944
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Finance

    Informations forums :
    Inscription : Décembre 2005
    Messages : 2 944
    Par défaut
    là tu as des jours pas des secondes

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    SQL> SELECT numtodsinterval(0.119247685185185,'DAY') from dual;
     
    NUMTODSINTERVAL(0.119247685185185,'DAY')
    ---------------------------------------------------------------------------
    +000000000 02:51:42.999999999

  6. #6
    Expert confirmé
    Avatar de laurentschneider
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Décembre 2005
    Messages
    2 944
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Finance

    Informations forums :
    Inscription : Décembre 2005
    Messages : 2 944
    Par défaut
    éventuellement

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
     
    SQL> create or replace function diff_between_dates(debut timestamp, fin timestamp)
      2  return varchar2 is begin
      3  return extract(day FROM (fin-debut))*24+extract(hour FROM (fin-debut))||':'||
      4    to_char(abs(extract(minute FROM (fin-debut))),'FM00')||':'||
      5    to_char(abs(extract(second FROM (fin-debut))),'FM00');
      6  end;
      7  /
     
    Function created.
     
    SQL> 
    SQL> select diff_between_dates(
      2    to_date('2000-01-01 10:20:30','YYYY-MM-DD HH24:MI:SS'),
      3    to_date('2001-02-03 04:05:06','YYYY-MM-DD HH24:MI:SS')
      4  ) from dual;
     
    DIFF_BETWEEN_DATES
    ------------------
    9569:44:36

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. l'équivalant procedure d'oracle en MYSQL
    Par midouutn dans le forum SQL Procédural
    Réponses: 1
    Dernier message: 19/05/2010, 15h51
  2. OEM ou équivalent à partir d'Oracle Client 11G
    Par mazu29 dans le forum Entreprise Manager
    Réponses: 3
    Dernier message: 27/04/2009, 17h03
  3. [Oracle] équivalent mysql_num_rows sur oracle?
    Par erox44 dans le forum PHP & Base de données
    Réponses: 1
    Dernier message: 14/04/2008, 14h26
  4. équivalence fonction ROWNUM (oracle) avec MySQL
    Par pblb62 dans le forum SQL Procédural
    Réponses: 8
    Dernier message: 23/01/2006, 13h50
  5. équivalent des Synonymes Oracle sous SQL Server 2000
    Par wello00 dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 25/07/2005, 08h52

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo