Oracle 我的系统日期与桌面上显示的日期不同

Oracle 我的系统日期与桌面上显示的日期不同,oracle,oracle-sqldeveloper,Oracle,Oracle Sqldeveloper,我已经执行了以下命令来了解我的系统日期,我发现结果与任务栏中显示的日期不同 select to_char(sysdate,'DD-MON-YY HH:MI:SS') from dual; 怎么会这样?如何解决此问题请执行以下命令并发布您得到的信息: select to_char(sysdate,'mm/dd/rr hh24:mi:ss'), to_char(current_date,'mm/dd/rr hh24:mi:ss'), systimestamp, sessiont

我已经执行了以下命令来了解我的系统日期,我发现结果与任务栏中显示的日期不同

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

怎么会这样?如何解决此问题请执行以下命令并发布您得到的信息:

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

根据您的评论,我发现时区配置有所不同。因此,您需要修复数据库的时区,以与操作系统的时区相匹配。

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

例如:如果db服务器的时区设置为CET,并且您登录此服务器,并且您打开一个具有时区配置GMT的shell,并且您(重新)启动此shell中的实例,那么sysdate的时区将为GMT

如果可能,使用sysdate函数想要的时区配置,从shell/命令提示符重新启动实例


顺便说一句:systimestamp与sysdate相同,包括毫秒,但systimestamp还包括sysdate和systimestamp的时区信息。此外,函数dbtimezone不返回用于sysdate的时区。只有systimestamp可以返回sysdate的时区。dbtimezone用于数据类型为“timestamp with local timezone”的列,除此之外没有其他用途。

Oracle安装在您的PC中,或者您连接到远程DB?@MaheswaranRavisankar安装在我的pcwow上,这是非常罕见的,因为Oracle DB从操作系统获取日期。从oracle您只能更改格式。查询结果到底是什么,此时您的系统时钟显示什么?查询结果:09-OCT-14 03:35:02任务栏日期:09-OCT-14 03:33:00所以我分别得到:10/09/14 16:40:50 10/09/14 15:40:50 09-OCT-14 04.40.50.771000000 PM+02:00+01:00这并没有提供问题的答案。若要评论或要求作者澄清,请在其帖子下方留下评论。@Ulrichswarz:是的,我将其作为答案而不是评论发布,因为评论中的SQL代码可能会有点混乱。谢谢你的建议,我会在以后的帖子中牢记这一点。