Oracle中的TO_DATE错误地转换了以下语句:
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并检查设置
答案 1 :(得分:0)
解决了。
我的客户端服务器上的时钟被配置为使用DST,并出现此错误,因为我们本应在2020年在巴西使用DST,但事实并非如此。
我相信这是因为它是旧的Windows Server,并且可能尚未更新DST表。
更新服务器上的时钟即可解决此问题。
我认为错误本身是由应用程序的驱动程序而不是Oracle产生的。