Problème Conversion type date
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 :
id|reponse|date
-------------
1|2014-01-01|date
2|mon texte|texte
3|2014-02-01|date
Ma query:
Code:
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 |
J'ai essayé ceci :
Code:
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" |
Quelqu'un aurait une solution pour qu'il ne tente de convertir que les données retournées par la sous-requête?
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...