Précédent   Forum du club des développeurs et IT Pro > Bases de données > PostgreSQL > Requêtes
Requêtes Forum d'entraide sur les requêtes SQL spécifiques à PostgreSQL, les triggers, les vues, etc.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse
 
Outils de la discussion
Publicité
'
Vieux 26/10/2012, 14h57   #1
Nanais19
Membre du Club
 
Inscription : avril 2011
Messages : 228
Détails du profil
Informations forums :
Inscription : avril 2011
Messages : 228
Points : 58
Points : 58
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 :
Citation:
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 :
Citation:
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 :
Citation:
//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 :
Citation:
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.
Nanais19 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/10/2012, 15h18   #2
Arkhena
Membre expérimenté
 
Avatar de Arkhena
 
Inscription : décembre 2006
Messages : 480
Détails du profil
Informations forums :
Inscription : décembre 2006
Messages : 480
Points : 562
Points : 562
Bonjour,

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

Code :
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 :
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
Arkhena est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 26/10/2012, 16h02   #3
Nanais19
Membre du Club
 
Inscription : avril 2011
Messages : 228
Détails du profil
Informations forums :
Inscription : avril 2011
Messages : 228
Points : 58
Points : 58
Parfait hihi, effectivement sa fonctionne mieux en indiquant le format 'HH24:MI:SS'
Nanais19 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Cette discussion est résolue.
Outils de la discussion

Navigation rapide


Fuseau horaire GMT +2. Il est actuellement 11h11.


 
 
 
 
Partenaires

Hébergement Web