在Oracle数据库中正常执行select sysdate from dual都可以返回当前系统时间。
正常的修改系统时间,对应的查询结果也会变成修改后的系统时间。
数据库查询 select sysdate from dual 返回的时间和所在系统的主机时间相差很大,进一步排查发现返回的时间是固定不变的。
最终发现是Oracle有参数可以使得sysdate一直返回固定的时间,供某些测试场景使用。
该库也是因为有其他测试人员设置了该参数,而其他测试人员不知道,
-设置输入格式
SQL> alter session set nls_date_format='yyyy-mm-dd hh24:mi:ss';
Session altered.
--正常的系统时间
SQL> select sysdate from dual;
SYSDATE
-------------------
2017-04-10 18:41:12
SQL> /
SYSDATE
-------------------
2017-04-10 18:41:15
---固定一个时间
SQL> alter system set fixed_date='2017-04-24 12:12:12';
System altered.
SQL>
--再次查询时间值,且固定不变
SQL> select sysdate from dual;
SYSDATE
-------------------
2017-04-24 12:12:12
SQL> /
SYSDATE
-------------------
2017-04-24 12:12:12
-设置并显示正确时间
SQL> alter system set fixed_date=none;
System altered.
SQL> select sysdate from dual;
SYSDATE
-------------------
2017-04-10 18:43:14
SQL> /
SYSDATE
-------------------
2017-04-10 18:43:17
SQL>
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/31399171/viewspace-2136984/
,如需转载,请注明出处,否则将追究法律责任。