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 :

la fonction current_timestamp


Sujet :

PL/SQL Oracle

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Septembre 2009
    Messages
    80
    Détails du profil
    Informations forums :
    Inscription : Septembre 2009
    Messages : 80
    Par défaut la fonction current_timestamp
    bonjour à tous

    j'espère que vous pouvez m'aider dans mon problème

    je developpe une application avec oracle, et j'ai une zone de text : heure de..

    qui reçoit l'heure courante

    j'aimerais savoir comment faire pour déclarer une colonne de type heure, parce que j'ai trouvé cette fonction "current_timestamp " mais elle retourne la date et l'heure,mais lorsque j'utilise la fonction : "current_time", il me retourne une erreur de type :"OAR-00904 identificateur non valide"

    merci infiniment d'avance

  2. #2
    Invité
    Invité(e)
    Par défaut
    qui peut le plus, peut le moins !
    Si tu as un champs date, il y a l'heure avec.
    En quoi, ça te dérange ?
    Et évite de stocker ce genre d'information dans un champ varchar, pour la manipulation, c'est la porte ouverte à plein de problème pour rien !

  3. #3
    Membre confirmé
    Inscrit en
    Septembre 2009
    Messages
    80
    Détails du profil
    Informations forums :
    Inscription : Septembre 2009
    Messages : 80
    Par défaut
    merci pour votre réponse

    mais le temps m'interesse dans mes calculs

    j'ai trouvé cette fonction (aprés une longue recherche) :

    "TO_CHAR (CURRENT_TIMESTAMP, 'HH24:MM:SS, Day, Month, DD, YYYY')"

    qui permet de personnaliser l'affichage de la date/heure

    donc il suffit de garder la partie qui m'interesse, donc ça devient :

    insert into Table (col) values (to_char(current_timestamp,'HH24:MM:SS'));

    merci

  4. #4
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par killua86 Voir le message
    mais le temps m'interesse dans mes calculs
    Justement si vous voulez faire des calculs vous avez tout intérêt à conserver un format date sinon vous allez au devant de problème de conversion et de manipulation sans parler de l'impact sur les performances...

    Essayez juste de faire une différence de date avec votre format pour comprendre...

    Enfin, moi, je dis ça...
    C'est vous qui voyez...
    Il est toujours possible de se compliquer la vie !

    Mais vous ne pourrez plus dire que l'on vous aura pas prévenu...

  5. #5
    Rédacteur

    Homme Profil pro
    Consultant / formateur Oracle et SQL Server
    Inscrit en
    Décembre 2002
    Messages
    3 461
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Consultant / formateur Oracle et SQL Server

    Informations forums :
    Inscription : Décembre 2002
    Messages : 3 461
    Par défaut
    Citation Envoyé par killua86 Voir le message
    j'aimerais savoir comment faire pour déclarer une colonne de type heure, parce que j'ai trouvé cette fonction "current_timestamp " ...
    Il n'existe pas, sous Oracle, de type dédié pour stocker une heure.
    Soit vous utilisez un VARCHAR2 (dans le cas où vous n'avez pas besoin de faire de calculs, de comparaisons entre 2 valeurs).
    Soit vous utilisez le type DATE, qui comporte effectivement systématiquement en plus le jour, le mois et l'année. Vous devrez simplement les ignorer et les masquant à l'affichage avec TO_CHAR.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    select sysdate,
    to_char(sysdate, 'DD/MM/YYYY HH24:MI:SS') "date heure",
    to_char(sysdate, 'HH24:MI:SS') "heure sans date"
    from dual;
     
    SYSDATE  date heure          heure sa
    -------- ------------------- --------
    21/05/10 21/05/2010 17:54:30 17:54:30

  6. #6
    Membre confirmé
    Inscrit en
    Septembre 2009
    Messages
    80
    Détails du profil
    Informations forums :
    Inscription : Septembre 2009
    Messages : 80
    Par défaut
    vous avez tous raison, j'ai essayé de compliquer la vie

    la solution est d'assembler la date et l'heure dans un seul champ, et de masquer le reste, parcequ'il sera utile dans mes calculs

    merci tous pour vos participations

  7. #7
    Membre confirmé
    Inscrit en
    Septembre 2009
    Messages
    80
    Détails du profil
    Informations forums :
    Inscription : Septembre 2009
    Messages : 80
    Par défaut
    bonjour

    je vais continuer la discussion, parce que j'ai rencontré un autre problème

    j'ai declaré mon champ "champ1" (qui contient la date et l'heure courante pour simplifier les calculs) comme étant varchar2,

    car lorsque je l'ai declaré comme "date" et j'ajoute
    "to_char(current_timestamp,'DD/MM/YYYY HH:MI')" à ce champ, j'obtiens une erreur
    en plus la fonction "datediff" calcule la différence entre 2 dates (qui ne contiennent pas le temps)
    comment faire

  8. #8
    Membre confirmé
    Inscrit en
    Septembre 2009
    Messages
    80
    Détails du profil
    Informations forums :
    Inscription : Septembre 2009
    Messages : 80
    Par défaut
    rebonjour

    j'ai trouvé la solution

    j'ai déclaré le champ "date_IN" comme date


    pour inserer la date courante

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    insert into table(date_IN) values(sysdate)
    et pour avoir la date et le temps, j'ai utilisé la fonction

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    select to_char(date_IN,'DD/MM/YY HH24:MI') from table
    et pour calculer la durée entre 2 dates en minute
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    select (date_IN-date_OU)*1440 durée from table
    date=24(heures)*60(minute) =1440

    et c'est fini

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

Discussions similaires

  1. Réponses: 8
    Dernier message: 12/02/2013, 01h08
  2. Fonction API
    Par margilb dans le forum C++Builder
    Réponses: 2
    Dernier message: 08/07/2002, 11h11
  3. Implémentation des fonctions mathématiques
    Par mat.M dans le forum Mathématiques
    Réponses: 9
    Dernier message: 17/06/2002, 16h19
  4. fonction printf
    Par ydeleage dans le forum C
    Réponses: 7
    Dernier message: 30/05/2002, 11h24
  5. FOnction api specifiant la position de la souris
    Par florent dans le forum C++Builder
    Réponses: 4
    Dernier message: 15/05/2002, 20h07

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