Merci beacoup Julien! En effet (ça ressemble un peut), j'ai constaté après que la colonne en question été déclaré en char(50) ce qui contient bien évidemment plus que mes caractères recherchés.
Merci encor pour ta réactivité
Probablement des espaces en fin de chaîne, ou des caractères non visibles.
]]>Je reprend cette discussion car j'ai aussi un souci avec l'opérateur "LIKE".
Je suis en version 9.1.7 de postgresql sur redhat5. Je trouve dans la doc section 9.7.1 que l'operateud "LIKE" sans "%" se comporte comme "=" equal. alors qu'il ne me donne rien sur une recherche de chaie de 9 caractères alors que ça marche avec "%". Est ce que ceci a un rapport avec les indexes utilisés et/ou le type encodage????
Merci d'avance.
]]>test=# CREATE TABLE test (date_saisie date);
CREATE TABLE
test=# SELECT * from test where date_saisie >= '2010-01-01' and date_saisie < '2011-01-01'
test-# ;
date_saisie
-------------
(0 rows)
Sinon, si on n'a pas une base avec un datestyle iso, sait on jamais, on peut écrire :
SELECT * from test where date_saisie >= to_date('2010-01-01','YYYY-MM-DD') and date_saisie < to_date('2011-01-01','YYYY-MM-DD');
Mais c'est cette forme qui est la bonne : on convertit la valeur à tester dans le type de la colonne, jamais l'inverse.
À moins que date_saisie ne soit pas une date, mais dans ce cas, ce n'est pas cohérent avec :
ERREUR: l'opérateur n'existe pas : date ~~ unknown
]]>La forme VRAIMENT bonne, c'est where date_saisie >= '2010-01-01' and date_saisie < '2011-01-01'
C'est pour pinailler, mais si i y avait beaucoup d'enregistrements dans la table, celà pourrait faire une très grosse différence.
]]>Audrey
]]>Je ne parviens pas à exécuter la requête suivante :
"SELECT * FROM manipulations WHERE date_saisie LIKE '%2010%'.
J'obtiens l'erreur suivante :
ERREUR: l'opérateur n'existe pas : date ~~ unknown
LINE 1: SELECT * FROM manipulations WHERE date_saisie LIKE '%2010%'
^
HINT: Aucun opérateur ne correspond au nom donné et aux types d'arguments.
Vous devez ajouter des conversions explicites de type.
Ma version de postgreSQL est la 8.3.8. Il s'agit de ma machine. Sur le serveur, la version est la 8.1.19 et il n'y a pas d'erreur quand j'effectue exactement la même requête.
Quelqu'un pourrait-il m'aider?:D
Merci beaucoup
]]>