Recherche sur des dates [SQL - postgreSQL] - SQL/NoSQL - Programmation
Marsh Posté le 09-02-2006 à 08:26:51
après avoir potassé la documentation de postgreSQL j'ai trouvé la solution, pour ceux que ça interesse :
Citation : and date_part('year', b.birthday) = '1980' |
la requete complete :
Citation : select b.member_id, b.birthday |
j'ai cru un moment que ça ne marchait pas puis il m'a suffit de fermer pgAdminIII puis de le re-ouvrir pour que la requete fonctionne ... très étrange !
Marsh Posté le 09-02-2006 à 05:58:55
bonjour,
je dois fixer un bug dans un code qui n'est pas de moi et j'ai un probleme avec les dates.
pour faire simple je vais vous expliquer ce qu'on devrait obtenir et ce qu'on obtient réellement (bug).
ce qu'on veut :
en sélectionnant une année, par exemple 1980, on veut obtenir la liste de toutes les personnes née en 1980
ce qu'on obtient réellement (qui ne correspond pas à ce qu'on veut) :
en sélectionnant une année, par exemple 1980, on obtient la liste de toutes les personnes dont la date de naissance est inférieure ou égale à 1980-12-31.
voici le morceau de requête SQL qui ne va pas :
and ( b.birthday <= '1980-12-31 11:59:59'::timestamp )
on voit aisément le problème mais je n'arrive pas à touver la syntaxe qui me permettrait de faire une comparaison du meme genre que je pourrai faire avec une chaine :
and ( b.birthday like '1980%' )
quelques infos concernant la base de données : PostgreSQL 7.3.4.
le champ birthday est de type date.