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

PL/SQL Oracle Discussion :

Convertir float en timestamp sans précision des secondes


Sujet :

PL/SQL Oracle

  1. #1
    Nouveau membre du Club
    Femme Profil pro
    Inscrit en
    Juillet 2013
    Messages
    106
    Détails du profil
    Informations personnelles :
    Sexe : Femme

    Informations forums :
    Inscription : Juillet 2013
    Messages : 106
    Points : 38
    Points
    38
    Par défaut Convertir float en timestamp sans précision des secondes
    Bonjour

    je voudrais convertir un float vers un timestamp en utilisant une fonction
    mon code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    CREATE OR REPLACE function KPI.float_to_date ( unix_time in float ) 
     
    return TIMESTAMP 
     
    is 
    sql_date  timestamp  ;
     
    begin 
    sql_date  := date '1970-01-01' + unix_time /60/60/24 ;
    return sql_date ;
    end;
    /
    ;
    mais qd j'exécute cette fonction j'ai la date sous la forme 16/03/2014 07:59:27,000000000
    mon but est d'avoir une date sous la forme 16/03/2014 07:59:27

    j'ai essayer de cast float en integer mais ça marche pas
    avez vous une idée comment le faire
    aidez moi svp et merci d'avance

  2. #2
    Membre expérimenté Avatar de ojo77
    Homme Profil pro
    Architecte de base de données
    Inscrit en
    Décembre 2010
    Messages
    680
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Architecte de base de données
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Décembre 2010
    Messages : 680
    Points : 1 597
    Points
    1 597
    Par défaut
    Bonjour,

    Le timestamp est stocké de manière interne sous forme d'entier long (il me semble) en tous cas, pas sous forme de chaine de caractère. c'est la variable d'environnement nls_tamestamp_format qui gère la conversion implicite.

    Si vous ne voulez pas utilisez la conversion implicite, il faut alors passer par une conversion en utilisation to_char.

  3. #3
    Nouveau membre du Club
    Femme Profil pro
    Inscrit en
    Juillet 2013
    Messages
    106
    Détails du profil
    Informations personnelles :
    Sexe : Femme

    Informations forums :
    Inscription : Juillet 2013
    Messages : 106
    Points : 38
    Points
    38
    Par défaut
    merci ojjo77 pour votre réponse
    je n'ai pas compris votre solution, je serais reconnaissante si vous pouvez m'expliquer comment à partir d'un cast to char
    avoir seulement la partie entiére puis convertir set entier en une sql date

    merci pour votre aide appréciée

  4. #4
    Membre expérimenté Avatar de ojo77
    Homme Profil pro
    Architecte de base de données
    Inscrit en
    Décembre 2010
    Messages
    680
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Architecte de base de données
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Décembre 2010
    Messages : 680
    Points : 1 597
    Points
    1 597
    Par défaut
    Votre fonction est 'bonne'

    C'est dans l'appel de la fonction ou le paramétrage de votre outil que vous verrez la différence d'affichage.

  5. #5
    Nouveau membre du Club
    Femme Profil pro
    Inscrit en
    Juillet 2013
    Messages
    106
    Détails du profil
    Informations personnelles :
    Sexe : Femme

    Informations forums :
    Inscription : Juillet 2013
    Messages : 106
    Points : 38
    Points
    38
    Par défaut
    merci ojjo77 pour votre réponse,
    j'ai résolu le probléme de changer le type à date au lieu de timestamp
    mais quand je fais ma requete de select exple
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    select xxxx 
    from yyy.zzzzz
    where tttt='ssssssssssssss'
    and date_xxxx between 16/03/2014 21:00:00 and 17/03/2014 21:00:00;
    j'aurai cet erreur :
    [Error] Execution (33: 34): ORA-00905: mot-clé absent

    pouvez vous m'aider j'ai pas compris où mon erreur et comment je le corrige
    merci

Discussions similaires

  1. Convertir des secondes en HH:MM:SS
    Par Poisson59 dans le forum MS SQL Server
    Réponses: 3
    Dernier message: 29/08/2006, 10h32
  2. [Javascript] Précision des float
    Par NicoNours dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 15/03/2006, 09h12
  3. comment convertir des secondes en hh:mm:ss en xsl
    Par Jayceblaster dans le forum XSL/XSLT/XPATH
    Réponses: 1
    Dernier message: 22/07/2005, 10h24
  4. [Fonction Oracle] Convertir des secondes en heure
    Par falcon dans le forum Oracle
    Réponses: 12
    Dernier message: 18/11/2004, 11h56
  5. [Fonction SQL Serveur] convertir des secondes en heure
    Par falcon dans le forum MS SQL Server
    Réponses: 8
    Dernier message: 17/11/2004, 17h22

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