`
哇哈哈852
  • 浏览: 86635 次
文章分类
社区版块
存档分类
最新评论

Oracle current_date和sysdate时间不一致解决

阅读更多


前段时间,发现一套新装载的Rac数据库所在操作系统时间不对,查询dbtimezone发现为-06:00,说明时区不对;
select dbtimezone from dual;

DBTIME

---------

-06:00

OK,先将rac停掉,再在一段启动数据库,更改time_zone参数:

alter database set time_zone='+08:00';

更改参数后,将数据库shutdown,再将Rac数据库启动起来;

接着分别运行以下SQL,查看时间是否校准:

select sysdate from dual;

select current_date from dual;

select current_timestamp from dual;

host date

select systimestamp from dual;

在sqlplus中发现时间一致,但是开发反应使用pl/sql查询的时候显示时间不一致。即sysdate,systimestamp很current_date,current_timestamp的时间不一致。

都知道sysdate,systimestamp取的是系统的时间,为什么sqlplus中查询的值是准确的值,而通过pl/sql连接查询的值就不是准确的?

为了定位是不是数据库的问题,在该操作系统上使用DBCA重新创建一个test DB,之后查看该test数据库,发现问题依旧,从此处可以大概估算下应该不是数据库的问题,是操作系统的问题。

在AIX操作系统下date看到操作系统时区为BEIST-8,由于是测试库,将操作系统时区改为CST(Asia/shanghai)之后,重启操作系统,使用pl/sql连接数据库,发现问题解决,所有时间均一致,且都在东八区。
  • 大小: 32.8 KB
分享到:
评论

相关推荐

    oracle中to_date详细用法示例(oracle日期格式转换)

    1. 日期和字符转换函数用法(to_date,to_char) 代码如下:select to_char(sysdate,’yyyy-mm-dd hh24:mi:ss’) as nowTime from dual; //日期转化为字符串 select to_char(sysdate,’yyyy’) as nowYear from ...

    oracle日期类型的处理

    1. 日期和字符转换函数用法(to_date,to_char) select to_char(sysdate,'yyyy-mm-dd hh24:mi:ss') as nowTime from dual; //日期转化为字符串 select to_char(sysdate,'yyyy') as nowYear from dual; //获取时间...

    oracle中日期类型与unix 时间戳的转换

    Oracle中的时间是Date型,以下函数提供了两种时间转换的Oracle函数 --unix时间戳与date时间互转 SELECT oracle_to_unix(SYSDATE),unix_to_oracle(1551774286),oracle_to_unix(SYSDATE) FROM dual;

    oracle学习笔记

    根据系统时间获取上周一时间并转化为number create or replace function getUpMonday return number is Result number; begin declare cursor MyCursor is select to_number(to_date(to_char(d.surmon,'yyyy-...

    ORACLE时间函数(SYSDATE)深入理解

    加法 select sysdate,add_months(sysdate,12) from dual; –加1年 select sysdate,add_months(sysdate,1) from dual; –加1月 select sysdate,to_char(sysdate+7,’yyyy-mm-dd HH24:MI:SS’) from dual; –加1星期 ...

    oracle中add_months()函数及用法总结

    add_months (sysdate,2):就是当前日期的两个月之后的时间。 如:表示2个月以后的时间: SQL> select add_months(sysdate,2) from dual; ADD_MONTHS(SYSDATE,+2) ---------------------- 2012-5-16 下午 02:30:...

    MySQL与Oracle的语法区别详细对比

    Oracle和mysql的一些简单命令对比 1) SQL> select to_char(sysdate,’yyyy-mm-dd’) from dual; SQL> select to_char(sysdate,’hh24-mi-ss’) from dual; mysql> select date_format(now(),’%Y-%m-%d’); mysql> ...

    oracle日期格式和java日期格式区别 HH24:mm:ss和HH24:mi:ss的区别

    oracle日期格式和java日期格式区别 HH24:mm:ss和HH24:mi:ss的区别 1.java 1)分钟用mm表示 24小时制: java(区分大小写):yyyy-MM-dd HH:mm:ss 12小时制: java(区分大小写):yyyy-MM-dd hh:mm:ss 2)...

    Oracle to_char 日期转换字符串语句分享

    1》以12小时制显示 SQL>select to_char(sysdate,’YYYY-MM-DD HH12:MI:SS AM’)from dual; TO_CHAR(SYSDATE,’YYYY-MM-DDHH1 —————————— 2007-06-29 02:50:06 下午 ...3》得到当前时间的前

    SQL语句,查询当月,当年数据

    and t.create_time<=last_day(SYSDATE) create_time为你要查询的时间 当年数据 select * from table t where t.create_time >=trunc(sysdate,'YYYY') and t.create_time<=add_months(trunc(sysdate,'YYYY'),12)-...

    oracle中TIMESTAMP与DATE比较

    oracle中TIMESTAMP与DATE比较

    oracle 常用代码.

    原因是SQL中不区分大小写,MM和mm被认为是相同的格式代码,所以Oracle的SQL采用了mi代替分钟。 select to_date('2005-01-01 13:14:20','yyyy-MM-dd HH24:mi:ss') from dual; 二、另要以24小时的形式显示出来要用HH24...

    sql精妙用法,希望能对大家有所帮助

    select * from 日程安排 where datediff('minute',f开始时间,getdate())>5 说明:两张关联表,删除主表中已经在副表中没有的信息 delete from info where not exists ( select * from infobz where info.infid=...

    Oracle 日期时间格式化不准的问题, hh24:mi:ss 才是正确的写法

    这种习惯的写法 to_char(sysdate, 'yyyyMMdd hh24:mm:ss') 中的 m ,有点傻,oracle分不清是月份 m, 还是分钟 m,所以分钟中的m 他取的月份,造成比较诡异的时间。。。 正常的写法是把分钟用 mi 表示(min分钟的...

    Oracle如何获取系统当前时间等操作实例

    获取系统当前时间 date类型的 select sysdate from dual; char类型的 select to_char(sysdate,'yyyy-mm-dd hh24:mi:ss') from dual; select to_char(sysdate, 'yyyy' ) from dual; --年 select to_char...

    Oracle date如何比较大小分析

    begin — Test statements here v_date1 := SYSDATE; v_date2 := to_date( ‘2008-09-08’); IF v_date1 > v_date2 THEN dbms_output.put_line( ‘if’); ELSE dbms_output.put_line( ‘else’); END IF; end

    Oracle_Database_11g完全参考手册.part3/3

    10.1.1 SYSDATE、CURRENTDA_DATE及SYSllMESTAMP 10.1.2 两个日期的差 10.1.3 添加月份 10.1.4 减少月份 10.1.5 GRE,ATEST和LEAST 10.1.6 NEXT-DAY 10.1.7 LAST-DAY 10.1.8 MOMTHS-BETWEEN 10.1.9 组合日期函数 10.2...

    Oracle_Database_11g完全参考手册.part2/3

    10.1.1 SYSDATE、CURRENTDA_DATE及SYSllMESTAMP 10.1.2 两个日期的差 10.1.3 添加月份 10.1.4 减少月份 10.1.5 GRE,ATEST和LEAST 10.1.6 NEXT-DAY 10.1.7 LAST-DAY 10.1.8 MOMTHS-BETWEEN 10.1.9 组合日期函数 10.2...

    oracle时间函数

    select TO_NUMBER(TO_CHAR(sysdate, 'DD')) from dual; --本月天数 select sysdate- TRUNC(sysdate, 'Q') + 1 from dual; --本季天数 select TO_NUMBER(TO_CHAR(sysdate, 'DDD')) from dual; --本年天数

    oracle 查询当天数据的sql条件写法

     to_date(to_char(sysdate,’yyyy-mm-dd’) || ‘ 00:00:01′,’yyyy-mm-dd hh24:mi:ss’) and to_date(to_char(sysdate,’yyyy-mm-dd’) || ‘ 23:59:59′,’yyyy-mm-dd hh24:mi:ss’); Oracle 字段类型为varchar2...

Global site tag (gtag.js) - Google Analytics