下面的查询为两个不同的oracle数据库提供了两个不同的结果。 (我不知道的数据库版本)
我想问一下,TO_DATE
函数与数据库版本有什么不同?
select * from ACC WHERE CHANGE = TO_DATE('01/02/2015','MM/DD/YY');
请注意,我仅在=
面临问题,但<
和>
工作正常。
在1分贝内:此查询提供1条记录
在2 db中:此查询提供0记录。
在DB中:CHANGE值为02-JAN-14
答案 0 :(得分:1)
据我所知,to_date()
没有改变。更有可能的是,您的列change
上有一个时间组件,这会阻止=
工作。试试这个:
select *
from ACC
where trunc(CHANGE) = TO_DATE('01/02/2015','MM/DD/YY');
或者,我更喜欢这样写:
where change >= DATE '2015-01-02' and
change < (DATE '2015-01-02') + 1
使用date
关键字,您可以使用ISO标准格式。此版本还允许在change
列上使用索引。
答案 1 :(得分:0)
如果他们在同一台服务器上很奇怪。如果您在两个不同的服务器上,请验证服务器的日期格式是否相同。
您可以在NLS
下的设置中查看