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

Oracle Discussion :

Supprimer les 0 devant les heure


Sujet :

Oracle

  1. #1
    Nouveau membre du Club
    Inscrit en
    Avril 2010
    Messages
    42
    Détails du profil
    Informations forums :
    Inscription : Avril 2010
    Messages : 42
    Points : 30
    Points
    30
    Par défaut Supprimer les 0 devant les heure
    Bonjour,

    J'aimerai enlever les 0 devant les heures, c'est a dir avoir :
    01h --> 1h
    02h --> 2h
    03h --> 3h
    04h --> 4h
    05h --> 5h
    .
    .
    .
    22h --> 22h
    23h --> 23h
    00h --> 00h

    Comment faire ?

    Voici ma requète :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT COUNT(TPS_ARRET) as NbArret, JOUR_PROD, NUM_IMMO, TO_CHAR(DATE_ARRET,'hh24') AS heure from PZ_MACH_ARRET WHERE(" & AndFiltre & ")and(NUM_IMMO=014914) GROUP BY JOUR_PROD, TO_CHAR(DATE_ARRET,'hh24'), NUM_IMMO ORDER BY mod(to_number(to_char(DATE_ARRET, 'hh24'))+19, 24) ASC
    L'heure ce trouve dans la table DATE_ARRET, dans mon cas je ne récupère que les heure

    (SQL Oracle)

  2. #2
    Modérateur
    Avatar de Waldar
    Homme Profil pro
    Sr. Specialist Solutions Architect @Databricks
    Inscrit en
    Septembre 2008
    Messages
    8 453
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Sr. Specialist Solutions Architect @Databricks
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2008
    Messages : 8 453
    Points : 18 388
    Points
    18 388
    Par défaut
    Il suffit de le convertir en nombre puis à nouveau en chaîne de caractère :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    select                   to_char(to_date('04:30', 'hh24:mi'), 'hh24')   as "hh24",
           to_char(to_number(to_char(to_date('04:30', 'hh24:mi'), 'hh24'))) as "h24"
      from dual;
     
    hh24	h24
    04	4

  3. #3
    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
    Points : 8 079
    Points
    8 079
    Par défaut
    Il y a encore plus simple, c'est d'utiliser l'attribut de formatage FM.
    http://download.oracle.com/docs/cd/B...04.htm#i170559
    In a datetime format element of a TO_CHAR function, this modifier suppresses blanks in subsequent character elements (such as MONTH) and suppresses leading zeroes for subsequent number elements (such as MI) in a date format model.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    select to_char(trunc(sysdate)+6/24, 'FMHH24') from dual;

  4. #4
    Expert éminent
    Avatar de pachot
    Homme Profil pro
    Developer Advocate YugabyteDB
    Inscrit en
    Novembre 2007
    Messages
    1 822
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : Suisse

    Informations professionnelles :
    Activité : Developer Advocate YugabyteDB
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2007
    Messages : 1 822
    Points : 6 446
    Points
    6 446
    Billets dans le blog
    1
    Par défaut FM
    Bonjour,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    to_char(sysdate,'fmhh24')
    Franck.

  5. #5
    Nouveau membre du Club
    Inscrit en
    Avril 2010
    Messages
    42
    Détails du profil
    Informations forums :
    Inscription : Avril 2010
    Messages : 42
    Points : 30
    Points
    30
    Par défaut
    La seul façon qui fonctionne dans mon cas est :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT TO_NUMBER(TO_CHAR(DATE_ARRET,'hh24')) FROM MaTable
    Pour les autres solutions je n'ai pas d'erreur mais je ne reçois aucune donnée

    Merci a tous

  6. #6
    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
    Points : 8 079
    Points
    8 079
    Par défaut
    Citation Envoyé par Damien.020 Voir le message
    La seul façon qui fonctionne dans mon cas est :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT TO_NUMBER(TO_CHAR(DATE_ARRET,'hh24')) FROM MaTable
    Pour les autres solutions je n'ai pas d'erreur mais je ne reçois aucune donnée

    Merci a tous
    Ca serait intéressant que vous nous fournissiez un jeu de test pour qu'on comprenne pourquoi :
    - le CREATE TABLE
    - 2 ou 3 INSERT
    - le SELECT

    Je soupçonne plutôt une erreur grossière qu'autre chose...

  7. #7
    Nouveau membre du Club
    Inscrit en
    Avril 2010
    Messages
    42
    Détails du profil
    Informations forums :
    Inscription : Avril 2010
    Messages : 42
    Points : 30
    Points
    30
    Par défaut
    Je ne peut créer ou modifier une table, je ne peut que récupérer, extraire des données de ces tables qui ne sont accessible qu'en lecteur.

    Cependant, ma requète est celle_ci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT COUNT(TPS_ARRET) as NbArret, JOUR_PROD, NUM_IMMO, TO_NUMBER(TO_CHAR(DATE_ARRET,'hh24')) AS heure from PZ_MACH_ARRET WHERE(" & AndFiltre & ")and(NUM_IMMO=014914) GROUP BY JOUR_PROD, TO_NUMBER(TO_CHAR(DATE_ARRET,'hh24')), NUM_IMMO ORDER BY mod(to_number(to_char(DATE_ARRET, 'hh24'))+19, 24) ASC
    'Date_arrêt' est sous la forme "DD/MM/YYYY HH:MI:SS", dans ma requète je ne récupère que les heures.

  8. #8
    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
    Points : 8 079
    Points
    8 079
    Par défaut
    Votre requête n'utilise pas le FM, comment pouvez-vous dire que ça ne marche pas ???

  9. #9
    Modérateur
    Avatar de Waldar
    Homme Profil pro
    Sr. Specialist Solutions Architect @Databricks
    Inscrit en
    Septembre 2008
    Messages
    8 453
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Sr. Specialist Solutions Architect @Databricks
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2008
    Messages : 8 453
    Points : 18 388
    Points
    18 388
    Par défaut
    Ah tient je pensais que le FM ne supprimait que les espaces.
    C'est la meilleure solution :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    SELECT to_char(to_date('04:30', 'hh24:mi'), 'fmhh24') as "hh24"
      FROM dual;
     
    hh24
    4

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

Discussions similaires

  1. enlever les slashes devant les apostrophes dans les mails
    Par laurentSc dans le forum Langage
    Réponses: 10
    Dernier message: 16/11/2010, 18h57
  2. Comment afficher des images les unes devant les autres avec GTK+ ?
    Par getgetxx dans le forum GTK+ avec C & C++
    Réponses: 19
    Dernier message: 30/04/2009, 20h58
  3. [Mail] Enlever les Slash devant les apostraphes
    Par arnolem dans le forum Langage
    Réponses: 6
    Dernier message: 21/02/2006, 22h39

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