查询to_date问题

时间:2015-01-07 11:22:34

标签: sql oracle

下面的查询为两个不同的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

2 个答案:

答案 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

下的设置中查看