我的sysdate与我桌面上显示的日期不同

时间:2014-10-09 12:19:21

标签: oracle oracle-sqldeveloper

我已执行以下操作来了解我的sysdate,并发现结果与我的任务栏中显示的日期不同。

 select to_char(sysdate,'DD-MON-YY HH:MI:SS') from dual;

怎么样?以及如何解决这个问题

2 个答案:

答案 0 :(得分:0)

请执行以下内容并发布您的内容:

select 
  to_char(sysdate,'mm/dd/rr hh24:mi:ss'),
  to_char(current_date,'mm/dd/rr hh24:mi:ss'),
  systimestamp,
  sessiontimezone 
from dual;

根据您的评论,我发现时区配置存在差异。因此,您需要修复数据库的时区以与您的操作系统相匹配。时区。

答案 1 :(得分:0)

函数sysdate是运行某个数据库实例的操作系统的日期/时间设置。但这是启动实例的日期时间(和时区)以及在用户(或脚本)的shell或命令提示符中设置的内容启动实例。

例如:如果数据库服务器的时区设置为CET并且您登录此服务器并且无论如何打开具有时区配置GMT的shell并且您(重新)在此shell中启动实例,那么sysdate的时区将是GMT。

如果可能,请使用您希望为sysdate函数设置的时区配置从shell /命令提示符重新启动实例。

BTW:systimestamp与sysdate相同,包括毫秒,但systimestamp还包括sysdate和systimestamp的时区信息。另外,函数dbtimezone不返回用于sysdate的时区。只有systimestamp可以返回sysdate的时区。 dbtimezone用于数据类型“timestamp with local timezone”的列。