我有一个 EJB 2.1 实体 bean,它查询 Oracle 表中的“出生日期”列。数据库中的列是 DATE 类型。除了一个特定的日期:1916 年 5 月 1 日,查询工作没有问题。
这与夏令时有关。Oracle 将日期存储为:5/1/1916 1:00:00 AM,而所有其他日期的时间设置为 12:00:00 AM(例如 1/7/1971 12:00:00 AM)。
在生产/接受系统上,1916 年 5 月 1 日的查询(使用 EJB-QL!)没有返回任何结果。奇怪的是它确实适用于我的开发/测试系统。我检查了各种系统上的数据库设置,发现 DBTIMEZONE 参数在开发/测试框上设置为 +00:00,在生产/接受框上设置为 +02:00。但是,将时区更改为 +02:00 不会产生任何差异。
什么可能导致这种行为?如何搜索这个出生日期?