Hello,
je voudrais comparai des dates dans une table (format Date), je travail en java et la base et postGres.
Je pense faire quelque chose du style:
Select myTable where value>myDate
est ce possible ?
Version imprimable
Hello,
je voudrais comparai des dates dans une table (format Date), je travail en java et la base et postGres.
Je pense faire quelque chose du style:
Select myTable where value>myDate
est ce possible ?
Oui c'est tout à fait possible.
Il faut faire attention aux comparaisons de dates en JDBC, je ne suis pas sûr que ce soit très bien géré par exemple d'utiliser directement un objet Date Java pour la comparaison ( je n'ai même jamais vraiment testé ), donc j'ai prit pour habitude de transformer ma date en String avec un format qui convient au SGBDR pour les comparaisons.
Par exemple :
En sachant que j'ai obtenu "22/10/2005" en utilisant un Formatter Java :)Code:
1
2
3 SELECT * FROM articles WHERE dateparution > '22/10/2005'
Sur oracle, et en SQL, je l'aurais plutôt codé comme ceci:
Voilà aprsè j'y connais rien en postgres, et en java.... :PCode:
1
2
3 Select * from ARTICLE A WHERE To_DATE(A.date_parution,'dd/mm/yyyy') > '26/08/2005'
bye
Je pense que tu n'as pas besoin de convertir ton champ date ( car il est déjà au format "date" ).
Le fait de comparer une date à une chaine de caractère, implique que la chaine de caractère sera transformée en Date. Je pense ( sans avoir vu les spécifications ) que ça fait partie d'une spécification de SQL, mais je peux me tromper..
Le seul format de DATE sur lequel se repose SQL est le format ISO :
AAAA-MM-JJ
A lire : http://sqlpro.developpez.com/cours/sqlaz/erreurs/#L7
A +
Merci pour l'information SQLPro, j'ai toujours utilisé "dd/mm/yyyy" mais je vois que ce n'est pas conforme au format ISO :cry: j'utiliserais yyyy-mm-dd :) Mais ça ne change rien d'omettre l'heure, ou penses-tu qu'il vaut mieux toujours la préciser ?
tout dépend si tu veut la correspondance avec heure ou date seulement.
A +