Bonjour,
j'ai un souci de conversion de type text vers date.
J'ai une table contenant 2 colonnes reponse(type text),type.
Je sais que si type = date alors la reponse est une date.
Exemple :
Ma query:id|reponse|date ------------- 1|2014-01-01|date 2|mon texte|texte 3|2014-02-01|date
J'ai essayé ceci :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 SELECT reponse::date FROM table WHERE type = 'date' ==> OK pas d'erreur SELECT count(*) FROM table WHERE type = 'date' AND reponse::date BETWEEN '2014-01-01' AND '2014-02-01' ==> ERREUR Invalid input syntax for type date :"mon texte", a priori comportement normal
Quelqu'un aurait une solution pour qu'il ne tente de convertir que les données retournées par la sous-requête?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 SELECT COUNT(*) FROM ( SELECT reponse ::date as reponse_date FROM table WHERE type = 'date' ) TAB WHERE reponse_date BETWEEN '2014-01-01' AND '2014-02-01' ==> ERREUR Invalid input syntax for type date :"mon texte"
Il semble que, malgré le filtre, il tente de convertir les data de la table entière.
j'ai besoin de faire cela à cause des 2 paramètres du BETWEEN. Je ne connais pas à l'avance le format de la date passée en paramètre...
Partager