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

Requêtes PostgreSQL Discussion :

Comparer l'heure dans postgresql


Sujet :

Requêtes PostgreSQL

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Avril 2011
    Messages
    232
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2011
    Messages : 232
    Points : 93
    Points
    93
    Par défaut Comparer l'heure dans postgresql
    Bonjour,

    J'ai une table dans laquelle je récupère et convertie un champs en timestamp.
    Voici ma requête qui fonctionne :
    SELECT to_timestamp(substring(date_begin from 1 for 14),'YYYYMMDDHHMISS') as date, date_begin, date_end
    FROM tableDate
    J'ai ensuite essayé de faire un tri sur la date, là pas de soucis, voici la requête qui fonctionne également :
    SELECT to_timestamp(substring(date_begin from 1 for 14),'YYYYMMDDHHMISS') as date, date_begin, date_end
    FROM tableDate
    WHERE to_date(substring(date_begin from 1 for 8),'YYYYMMDD') > '2012-07-23';
    Maintenant j'aimerais pouvoir faire un tri sur l'heure. Voici 2 exemples que j'ai essayé mais cette fois ci sans succès :
    //Ici le tri s'effectue quand même sur la date mais pas sur l'heure !
    SELECT to_timestamp(substring(date_begin from 1 for 14),'YYYYMMDDHHMISS') as date, date_begin, date_end
    FROM tableDate
    WHERE to_timestamp(substring(date_begin from 1 for 14),'YYYYMMDDHHMISS') > '2012-07-23 15:00:00';

    //Ici j'ai un message d'erreur
    SELECT to_timestamp(substring(date_begin from 1 for 14),'YYYYMMDDHHMISS') as date, date_begin, date_end
    FROM tableDate
    WHERE to_timestamp(substring(date_begin from 1 for 8),'YYYYMMDD') > '2012-07-23' AND to_timestamp(substring(date_begin from 9 for 14),'HHMISS') > '15:00:00';
    Voici le message d'erreur qui s'affiche avec la 2e requête :
    ERROR: invalid input syntax for type timestamp with time zone: "15:00:00"
    État SQL :22007
    Si vous pourriez m'aider à finaliser cette deuxième requête sa m'aiderai beaucoup.

    Merci d'avance.

  2. #2
    Membre éclairé Avatar de Arkhena
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    552
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 552
    Points : 769
    Points
    769
    Par défaut
    Bonjour,

    Il faut convertir correctement vos données...
    http://www.postgresql.org/docs/9.1/s...ormatting.html

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    /*Ici le tri s'effectue quand même sur la date mais pas sur l'heure !
    Vous ne lui avez même pas demandé de trier...*/
    SELECT to_timestamp(substring(date_begin from 1 for 14),'YYYYMMDDHHMISS') as date, date_begin, date_end
    FROM tableDate
    WHERE to_timestamp(substring(date_begin from 1 for 14),'YYYYMMDDHHMISS') > '2012-07-23 15:00:00'
    ORDER BY to_timestamp(substring(date_begin from 1 for 14),'YYYYMMDDHHMISS HH24:MI:SS') ;

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    /*Ici j'ai un message d'erreur
    Normal vous n'avez pas expliciter comment convertir votre chaîne de carcatères*/
    SELECT to_timestamp(substring(date_begin from 1 for 14),'YYYYMMDDHHMISS') as date, date_begin, date_end
    FROM tableDate
    WHERE to_timestamp(substring(date_begin from 1 for 8),'YYYYMMDD') > '2012-07-23' AND to_timestamp(substring(date_begin from 9 for 14),'HH:MI:SS') > to_timestamp('15:00:00','HH:MI:SS');
    Cordialement,

    Arkhena
    A bove ante, ab asino retro, a stulto undique caveto

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Avril 2011
    Messages
    232
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2011
    Messages : 232
    Points : 93
    Points
    93
    Par défaut
    Parfait hihi, effectivement sa fonctionne mieux en indiquant le format 'HH24:MI:SS'

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

Discussions similaires

  1. Comparer et de synchronisation de données tableau dans PostgreSQL
    Par MarcellusDEV dans le forum PostgreSQL
    Réponses: 0
    Dernier message: 24/11/2014, 14h59
  2. Réponses: 1
    Dernier message: 06/05/2014, 01h37
  3. Réponses: 2
    Dernier message: 06/05/2014, 01h33
  4. [XL-2010] Comparer des heures dans excel.
    Par vindkald dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 29/01/2014, 12h13
  5. Comparer date/heure dans une requête SQL
    Par ach152 dans le forum Débuter
    Réponses: 9
    Dernier message: 13/07/2008, 14h24

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