J'ai un bean entité EJB 2.1 qui interroge une colonne "date de naissance" dans une table Oracle. La colonne de la base de données est de type DATE. La requête fonctionne sans problème, sauf pour une date spécifique: 01 mai 1916.Interrogation d'enregistrement par date (01 mai 1916) sur Oracle à l'aide de Java/EJB 2.x
Cela a quelque chose à voir avec l'heure d'été. Oracle stocke la date sous la forme: 5/1/1916 1:00:00 AM, tandis que l'heure de toutes les autres dates est définie sur 12:00:00 AM (par exemple 1/7/1971 12:00:00 AM).
Sur les systèmes de production/acceptation une requête (avec EJB-QL!) Pour 01 mai 1916 ne renvoie aucun résultat. La chose étrange est que cela fonctionne sur mon système de développement/test. J'ai vérifié les paramètres de la base de données sur les différents systèmes et j'ai trouvé que le paramètre DBTIMEZONE était réglé sur +00: 00 dans les boîtes de dev/test et sur +02: 00 dans les boîtes de production/acceptation. Cependant, changer le fuseau horaire à +02: 00 ne produit aucune différence.
Ce qui pourrait causer ce problème? Comment rechercher cette date de naissance?
L'interrogation directe d'un client SQL fonctionne comme un charme. Puisque to_date ('1916-05-01', 'AAAA-MM-JJ') ignore la composante temporelle. Cependant, il n'est pas clair comment faire cela à partir de Java avec EJB 2.x QL. –