大家好,感谢邀请,今天来为大家分享一下oracle时间类型的问题,以及和oracle中date类型数据怎么写的一些困惑,大家要是还不太明白的话,也没有关系,因为接下来将为大家分享,希望可以帮助到大家,解决大家的问题,下面就开始吧!
本文目录
一、oracle数据表中如何转化成24小时格式
一、在使用Oracle的to_date函数来做日期转换时,很多Java程序员也许会直接的采用“yyyy-MM-dd HH:mm:ss”的格式作为格式进行转换,但是在Oracle中会引起错误:“ORA 01810格式代码出现两次”。
select to_date('2005-01-01 13:14:20','yyyy-MM-dd HH24:mm:ss') from dual;
原因是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
select to_char(sysdate,'yyyy-MM-dd HH24:mi:ss') from dual;//mi是分钟
select to_char(sysdate,'yyyy-MM-dd HH24:mm:ss') from dual;//mm会显示月份 oracle中的to_date参数含义
DAY天的名字,使用空格填充到9个字符
YYY,YY,Y年份的最后三位,两位,一位
WW年中的第几个星期 1.日期时间间隔操作
select sysdate,sysdate- interval’7’ MINUTE from dual
select sysdate- interval’7’ hour from dual
select sysdate- interval’7’ day from dual
select sysdate,sysdate- interval’7’ month from dual
select sysdate,sysdate- interval’7’ year from dual
select sysdate,sysdate- 8*interval’2’ hour from dual
select sysdate,to_char(sysdate,’yyyy-mm-dd hh24:mi:ss’) from dual select sysdate,to_char(sysdate,’yyyy-mm-dd hh:mi:ss’) from dual select sysdate,to_char(sysdate,’yyyy-ddd hh:mi:ss’) from dual select sysdate,to_char(sysdate,’yyyy-mm iw-d hh:mi:ss’) from dual
参考oracle的相关关文档(ORACLE901DOC/SERVER.901/A90125/SQL_ELEMENTS4.HTM#48515)
select to_date(’2003-10-17 21:15:37’,’yyyy-mm-dd hh24:mi:ss’) from dual
具体用法和上面的to_char差不多。
select trunc(sysdate,’YEAR’) from dual select trunc(sysdate) from dual select to_char(trunc(sysdate,’YYYY’),’YYYY’) from dual
--返回当前时间年月日小时分秒毫秒
select to_char(current_timestamp(5),’DD-MON-YYYY HH24:MI:SSxFF’) from dual;
--返回当前时间的秒毫秒,可以指定秒后面的精度(更大=9)
select to_char(current_timestamp(9),’MI:SSxFF’) from dual;
l_dummy all_objects.object_name%type;
l_start number default dbms_utility.get_time;
’select object_name from all_objects’||
dbms_output.put_line(round((dbms_utility.get_time-l_start)/100, 2)||’ seconds...’);
二、oracle中如何修改日期类型的字段值
1、打开oracle数据库新建一张表,因为是设置日期格式,因此字段2个date_time和time_time都是日期类型,如图:
2、如果是简单的查询表,那是显示的如期还是日期格式,如图:
3、查询日期显示结果设置日期格式,可以使用oracle数据库函数to_char来实现,这样的结果都是字符串,如图:
4、在“查询编辑器”中,输入如图所示的代码:
5、输入成功后,就完成了修改日期类型的字段值的操作。
三、Oracle基本数据类型存储格式浅析—日期类型(3)
1、对于公元前的日期 Oracle从开始保存公元前的年的保存的值和对应的公元后的年的值相加的和是如上例中的公元年和公元前年的值相加+=+=
2、 SQL中DATE类型最后还包括一个似乎目前没有使用
3、 SQL> CREATE TABLE TEST_TIMESTAMP(TIME TIMESTAMP() TIME TIMESTAMP() WITH LOCAL TIME ZONE TIME TIMESTAMP() WITH TIME ZONE);
4、 SQL> INSERT INTO TEST_TIMESTAMP VALUES(SYSTIMESTAMP SYSTIMESTAMP SYSTIMESTAMP);
5、 SQL> SELECT* FROM TEST_TIMESTAMP;
6、 TIME TIME TIME月下午月下午月下午+:
7、 SQL> SELECT DUMP(TIME) DUMP(TIME) DUMP(TIME) FROM TEST_TIMESTAMP;
8、 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
9、可以发现如果客户端和数据库中的时区是一致的那么TIMESTAMP和TIMESTAMP WITH LOCAL TIME ZONE存储的数据是完全一样的
10、 TIMESTAMP WITH TIME ZONE则略有不同它保存的是时区的时间和所处的时区信息
11、修改客户端主机的时区由东区(+区)改为时区
12、 SQL> INSERT INTO TEST_TIMESTAMP VALUES(SYSTIMESTAMP SYSTIMESTAMP SYSTIMESTAMP);
13、修改客户端主机的时区改为西区(时区)
14、 SQL> INSERT INTO TEST_TIMESTAMP VALUES(SYSTIMESTAMP SYSTIMESTAMP SYSTIMESTAMP);
15、修改客户端主机的时区改为西区(时区)
16、 SQL> INSERT INTO TEST_TIMESTAMP VALUES(SYSTIMESTAMP SYSTIMESTAMP SYSTIMESTAMP);
17、修改客户端主机的时区改为东区(+时区)
18、 SQL> INSERT INTO TEST_TIMESTAMP VALUES(SYSTIMESTAMP SYSTIMESTAMP SYSTIMESTAMP);
19、修改客户端主机的时区改为西区(时区)
20、 SQL> INSERT INTO TEST_TIMESTAMP VALUES(SYSTIMESTAMP SYSTIMESTAMP SYSTIMESTAMP);
21、修改客户端主机的时区改为东区(+时区)
22、 SQL> INSERT INTO TEST_TIMESTAMP VALUES(SYSTIMESTAMP SYSTIMESTAMP SYSTIMESTAMP);
23、修改客户端主机的时区改回东区(+时区)
24、 SQL> SELECT* FROM TEST_TIMESTAMP;
25、 TIME TIME TIME月下午月下午月下午+:
26、 SQL> SELECT DUMP(TIME) DUMP(TIME) DUMP(TIME) FROM TEST_TIMESTAMP;
27、 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
28、 Typ= Len=: b c c c e Typ= Len=: b c c c e Typ= Len=: b c c c e c
29、 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
30、 Typ= Len=: b b a f Typ= Len=: b b a f Typ= Len=: b b a f c
31、 Typ= Len=: c f d Typ= Len=: b f d Typ= Len=: b f d c
32、 Typ= Len=: b f cb bb c Typ= Len=: c e cb bb c Typ= Len=: b e cb bb c e
33、 Typ= Len=: c b b Typ= Len=: c f b b Typ= Len=: b f b b d a
34、 SQL> SELECT TO_NUMBER( C XXX) TO_NUMBER( C XXX) FROM DUAL;
35、 TO_NUMBER( C XXX) TO_NUMBER( C XXX)
36、 SQL> SELECT TO_NUMBER( XXX) TO_NUMBER( C XXX) TO_NUMBER( C XXXXXXX) FROM DUAL;
37、 TO_NUMBER( XXX) TO_NUMBER( C XXX)
38、 SQL> SELECT TO_NUMBER( C XXX) TO_NUMBER( E XXX) TO_NUMBER( A XXX) FROM DUAL;
39、 TO_NUMBER( C XXX) TO_NUMBER( E XXX) TO_NUMBER( A XXX)
40、可以看出修改时区会导致系统TIMESTAMP时间发生变化但是对于TIMESTAMP WITH LOCAL TIME ZONE类型总是将系统的时间转化到数据库服务器上时区的时间进行存储
41、 TIMESTAMP WITH TIME ZONE保存的是当前时间转化到时区的对应的时间并通过最后两位来保存时区信息
42、之一位表示时区的小时部分时区用 x表示东n区在这个基础上加n西n区在这个基础上减n我们所处的东区表示为 x C西区表示为 xF
四、ORACLE中有哪些数据类型
Oracle中的数据类型有:字符型、数字型、日期型等。具体介绍如下:
1、字符型:char(n):用于标识固定长度的字符串。
当实际数据不足定义长度时,使用空格补全右边不足位。varchar(n):可变字符串类型。
为SQL标准规定的,数据库必须实现的数据据类型。可以存储空字符串。
varchar2(n):可变字符串类型,是oracle在varchar的基础上自行定义的可变长度字符串
类型。当做为列类型使用时,更大长度可被定义为4000;当做为变量类型使用时,长度
可被定义为32767。不可以存储空字符串。
2、数值型:可用于存储整数、浮点数。
number(m,n):m表示有效数字的总位数(更大为38位),n表示小数位数。
date:包含Year(年)、Month(月)、Day(天)、Hour(时)、Minutes(分)、Second(秒)
说明:(yyyy表示4位年分;mm表示月份;dd表示天;hh表示时;mi表示分;ss表示秒)
4、大对象类型:lob:用于存储大对象类型。例如:文本信息长度超过4000、二进制文件等。更大容量为4GB。
lob分类:clob:用于存储大型文本数据。(例如:备注信息)
blob:用于存储二进制数据。(例如:图片文件)
bfile:作为独立文件存在的二进制数据。
null与空字符串:null与空字符串,都要用is null或is not null进行比较。
单引号:想将单引号做为字符中使用,请通过单引号进行转义。
6、注意:oracle中,没有布尔类型,可利用字符串或数值(1/0)表示
oracle时间类型和oracle中date类型数据怎么写的问题分享结束啦,以上的文章解决了您的问题吗?欢迎您下次再来哦!