Précédent   Forum des professionnels en informatique > Bases de données > PostgreSQL
PostgreSQL Forum PostgreSQL. Avant de poster -> F.A.Q PostGreSQL Tutoriels PostGreSQL
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 01/08/2007, 10h12   #1
Membre habitué
 
Inscription : mai 2002
Messages : 635
Détails du profil
Informations forums :
Inscription : mai 2002
Messages : 635
Points : 109
Points : 109
Par défaut comparaison de champ de date

Bonjour,

Comment convertir un champ Timestamp en champ Date car je dois faire une comparaison entre deux dates mais les deux formats ne sont pas identiques. D'un côté j'ai "01/01/2007 12:55:00" et de l'autre "02/06/2007"

Merci à tous.
viny est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/08/2007, 11h22   #2
Membre émérite
 
Avatar de hpalpha
 
Inscription : mars 2002
Messages : 770
Détails du profil
Informations forums :
Inscription : mars 2002
Messages : 770
Points : 833
Points : 833
Bonjour,

le plus simple est de caster

select monchamp::date

le ::date cast le type en date
hpalpha est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/08/2007, 11h24   #3
Membre habitué
 
Inscription : mai 2002
Messages : 635
Détails du profil
Informations forums :
Inscription : mai 2002
Messages : 635
Points : 109
Points : 109
Oui super merci !
viny est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/08/2007, 11h37   #4
Membre habitué
 
Inscription : mai 2002
Messages : 635
Détails du profil
Informations forums :
Inscription : mai 2002
Messages : 635
Points : 109
Points : 109
Juste un petit truc qui ne fonctionne pas. Mon format de date dans la table est en français soit 01/02/2007 pourtant quand je veux faire une comparaison de date ça ne fonctionne pas si je compare la date enregistrée avec une autre date au format français. Je suis obligé de mettre la seconde date au format anglais.

Code :
SELECT inscrit_pseudo FROM inscrit WHERE inscrit_date_inscription::date < '2006/11/07';
viny est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/08/2007, 11h50   #5
Membre émérite
 
Avatar de hpalpha
 
Inscription : mars 2002
Messages : 770
Détails du profil
Informations forums :
Inscription : mars 2002
Messages : 770
Points : 833
Points : 833
meme si la date est en anglais, en interne pg stocke en float, donc ca devrait marcher

Dans ton cas utilise la fonction to_date pour changer le type



Code :
1
2
3
 
SELECT inscrit_pseudo FROM inscrit WHERE
 inscrit_date_inscription::date < to_date('2006/11/07','YYYY/MM/DD');
hpalpha est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/08/2007, 11h53   #6
Membre émérite
 
Avatar de hpalpha
 
Inscription : mars 2002
Messages : 770
Détails du profil
Informations forums :
Inscription : mars 2002
Messages : 770
Points : 833
Points : 833
D'ailleurs,

Code :
1
2
SELECT inscrit_pseudo FROM inscrit WHERE
inscrit_date_inscription::date < '2006/11/07'::date;
devrait aussi fonctionner, mais je ne le conseille pas, c'est moins clair (confusion dans les mois, jours, ..)
hpalpha est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/08/2007, 11h55   #7
Membre habitué
 
Inscription : mai 2002
Messages : 635
Détails du profil
Informations forums :
Inscription : mai 2002
Messages : 635
Points : 109
Points : 109
Super content !

merci chef !
viny est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 08h30.


 
 
 
 
Partenaires

Hébergement Web