oracle 数据库日期格式怎么只要年月日

oracle 数据库日期格式怎么只要年月日,第1张

可通过用PL/SQL来改变日期格式。

1、登录PL/SQL。

2、登录后,点击菜单栏,工具—首选项。

3、左侧列表找到“日期/时间”。

4、可通过右侧的各种方式进行自定义的格式和自带的格式来进行修改,修改后点击“确定”按钮保存即可。

 对于公元前的日期 Oracle从 开始保存 公元前的年的保存的值和对应的公元后的年的值相加的和是 如上例中的公元 年和公元前 年的值相加 + = + =

 SQL中DATE类型最后还包括一个 似乎目前没有使用

 SQL> CREATE TABLE TEST_TIMESTAMP(TIME TIMESTAMP( ) TIME TIMESTAMP( ) WITH LOCAL TIME ZONE TIME TIMESTAMP( ) WITH TIME ZONE);

 表已创建

 SQL> INSERT INTO TEST_TIMESTAMP VALUES (SYSTIMESTAMP SYSTIMESTAMP SYSTIMESTAMP);

 已创建 行

 SQL> SELECT FROM TEST_TIMESTAMP;

 TIME TIME TIME 月 下午 月 下午 月 下午 + :

 SQL> SELECT DUMP(TIME ) DUMP(TIME ) DUMP(TIME ) FROM TEST_TIMESTAMP;

 DUMP(TIME ) DUMP(TIME ) DUMP(TIME ) Typ= Len= : b b fc c Typ= Len= : b b fc c Typ= Len= : b b fc c c c

 可以发现 如果客户端和数据库中的时区是一致的 那么TIMESTAMP和TIMESTAMP WITH LOCAL TIME ZONE存储的数据是完全一样的

 TIMESTAMP WITH TIME ZONE则略有不同 它保存的是 时区的时间 和所处的时区信息

 修改客户端主机的时区 由东 区(+ 区)改为 时区

 SQL> INSERT INTO TEST_TIMESTAMP VALUES (SYSTIMESTAMP SYSTIMESTAMP SYSTIMESTAMP);

 已创建 行

 修改客户端主机的时区 改为西 区( 时区)

 SQL> INSERT INTO TEST_TIMESTAMP VALUES (SYSTIMESTAMP SYSTIMESTAMP SYSTIMESTAMP);

 已创建 行

 修改客户端主机的时区 改为西 区( 时区)

 SQL> INSERT INTO TEST_TIMESTAMP VALUES (SYSTIMESTAMP SYSTIMESTAMP SYSTIMESTAMP);

 已创建 行

 修改客户端主机的时区 改为东 区(+ 时区)

 SQL> INSERT INTO TEST_TIMESTAMP VALUES (SYSTIMESTAMP SYSTIMESTAMP SYSTIMESTAMP);

 已创建 行

 修改客户端主机的时区 改为西 区( 时区)

 SQL> INSERT INTO TEST_TIMESTAMP VALUES (SYSTIMESTAMP SYSTIMESTAMP SYSTIMESTAMP);

 已创建 行

 修改客户端主机的时区 改为东 区(+ 时区)

 SQL> INSERT INTO TEST_TIMESTAMP VALUES (SYSTIMESTAMP SYSTIMESTAMP SYSTIMESTAMP);

 已创建 行

 SQL> MIT;

 提交完成

 修改客户端主机的时区 改回东 区(+ 时区)

 SQL> SELECT FROM TEST_TIMESTAMP;

 TIME TIME TIME 月 下午 月 下午 月 下午 + :

  月 下午 月 下午 月 下午 + :

  月 上午 月 下午 月 上午 :

  月 上午 月 下午 月 上午 :

  月 上午 月 下午 月 上午 + :

  月 下午 月 上午 月 下午 :

  月 上午 月 上午 月 上午 + :

 已选择 行

 SQL> SELECT DUMP(TIME ) DUMP(TIME ) DUMP(TIME ) FROM TEST_TIMESTAMP;

 DUMP(TIME ) DUMP(TIME ) DUMP(TIME ) Typ= Len= : b b fc c Typ= Len= : b b fc c Typ= Len= : b b fc c c c

 Typ= Len= : b c c c e Typ= Len= : b c c c e Typ= Len= : b c c c e c

 Typ= Len= : b b f a d c c Typ= Len= : b f a d c c Typ= Len= : b f a d c c f c

 Typ= Len= : b b a f Typ= Len= : b b a f Typ= Len= : b b a f c

 Typ= Len= : c f d Typ= Len= : b f d Typ= Len= : b f d c

 Typ= Len= : b f cb bb c Typ= Len= : c e cb bb c Typ= Len= : b e cb bb c e

 Typ= Len= : c b b Typ= Len= : c f b b Typ= Len= : b f b b d a

 SQL> SELECT TO_NUMBER( C XXX ) TO_NUMBER( C XXX ) FROM DUAL;

 TO_NUMBER( C XXX ) TO_NUMBER( C XXX )

 SQL> SELECT TO_NUMBER( XXX ) TO_NUMBER( C XXX ) TO_NUMBER( C XXXXXXX ) FROM DUAL;

 TO_NUMBER( XXX ) TO_NUMBER( C XXX )

 SQL> SELECT TO_NUMBER( C XXX ) TO_NUMBER( E XXX ) TO_NUMBER( A XXX ) FROM DUAL;

 TO_NUMBER( C XXX ) TO_NUMBER( E XXX ) TO_NUMBER( A XXX )

 可以看出 修改时区会导致系统TIMESTAMP时间发生变化 但是对于TIMESTAMP WITH LOCAL TIME ZONE类型 总是将系统的时间转化到数据库服务器上时区的时间进行存储

 TIMESTAMP WITH TIME ZONE保存的是当前时间转化到 时区的对应的时间 并通过最后两位来保存时区信息

 第一位表示时区的小时部分 时区用 x 表示 东n区在这个基础上加n 西n区在这个基础上减n 我们所处的东 区表示为 x C 西 区表示为 xF

lishixinzhi/Article/program/Oracle/201311/18690

首先,你的格式不对

SELECT TO_DATE('20110612 19:30:37', 'yyyymmdd hh24:mi:ss') -

(LEVEL - 1) / 24 / 4

FROM DUAL

CONNECT BY LEVEL <= 10;

其次,系统时间是ORACLE所在服务器的时间你这个根本就不能修改的只是查询出来而已

CURRENT_TIMESTAMP 与时区设置有关,返回的秒是系统的,返回的日期和时间是根据时区转换过的。

sysdate返回的是系统的时间。

alter session set time_zone='UTC';

select to_char(sysdate,'YYYYMMDD HH24:MI:SS'), CURRENT_TIMESTAMP ,TZ_OFFSET(sessiontimezone) from dual;

20090324 13:46:10 2009-03-24 04:46:10501474 +00:00 +00:00

DABAN RP主题是一个优秀的主题,极致后台体验,无插件,集成会员系统
网站模板库 » oracle 数据库日期格式怎么只要年月日

0条评论

发表评论

提供最优质的资源集合

立即查看 了解详情