Oracle TO_DATE错误地转换了2020/01/07之后的日期

时间:2020-01-06 18:49:46

标签: oracle

Oracle中的TO_DATE错误地转换了以下语句:

inserir a descrição da imagem aqui

SELECT 
    to_date('20200108 000000', 'YYYYMMDD HH24MISS') D1, 
    to_date('20200107 000000', 'YYYYMMDD HH24MISS') D2
FROM dual;

除了8而不是7以外,这两行都完全相同。 (对我而言)这没有任何意义,Oracle正确地转换了星期二而不是星期三。 不应有任何DST ...

2 个答案:

答案 0 :(得分:0)

它是您正在使用的工具,即SQL Developer。它会使用自己的设置覆盖DB NLS设置。

转到工具->首选项,然后依次至数据库-> NLS并检查设置

The tool's NLS settings

答案 1 :(得分:0)

解决了。

我的客户端服务器上的时钟被配置为使用DST,并出现此错误,因为我们本应在2020年在巴西使用DST,但事实并非如此。

我相信这是因为它是旧的Windows Server,并且可能尚未更新DST表。

更新服务器上的时钟即可解决此问题。

我认为错误本身是由应用程序的驱动程序而不是Oracle产生的。