原文:http://wangyaobeijing.blog.163.com/blog/static/158330320113276114762/ 1 SQL
> create table test_time (col_time
timestamp);
2
3 表已创建。
4
5 SQL
> insert into test_time
values (to_timestamp(
'0001-1-1 0:0:0.0',
'syyyy-mm-dd hh24:mi:ss.ff'));
6
7 已创建
1 行。
8
9 SQL
> insert into test_time
values (to_timestamp(
'2000-1-1 0:0:0.0',
'syyyy-mm-dd hh24:mi:ss.ff'));
10
11 已创建
1 行。
12
13 SQL
> insert into test_time
values (to_timestamp(
'9999-12-31 23:59:59.999999',
'syyyy-mm-dd hh24:mi:ss.ff'));
14
15 已创建
1 行。
16
17 SQL
> insert into test_time
values (to_timestamp(
'-0001-1-1 0:0:0.0',
'syyyy-mm-dd hh24:mi:ss.ff'));
18
19 已创建
1 行。
20
21 SQL
> insert into test_time
values (to_timestamp(
'-0100-3-4 13:2:3.234015',
'syyyy-mm-dd hh24:mi:ss.ff'));
22
23 已创建
1 行。
24
25 SQL
> insert into test_time
values (systimestamp);
26
27 已创建
1 行。
28
29
30 SQL
> insert into test_time
values (to_timestamp(
'2000-1-1 0:0:0.123456789',
'syyyy-mm-dd hh24:mi:ss.ff9'));
31
32 已创建
1 行。
33
34 SQL
> commit;
35
36 提交完成。
37
38 SQL
> select to_char(col_time,
'syyyy-mm-dd hh24:mi:ss.ff9') time,
dump(col_time) dump_time
39 2 from test_time;
40
41 TIME DUMP_TIME
42 ------------------------------ ----------------------------------------------------
43 0001-01-01 00:
00:
00.000000000 Typ
=180 Len=7:
100,
101,
1,
1,
1,
1,
1
44 2000-01-01 00:
00:
00.000000000 Typ
=180 Len=7:
120,
100,
1,
1,
1,
1,
1
45 9999-12-31 23:
59:
59.999999000 Typ
=180 Len=11:
199,
199,
12,
31,
24,
60,
60,
59,
154,
198,
24
46 -0001-01-01 00:
00:
00.000000000 Typ
=180 Len=7:
100,
99,
1,
1,
1,
1,
1
47 -0100-03-04 13:
02:
03.234015000 Typ
=180 Len=11:
99,
100,
3,
4,
14,
3,
4,
13,
242,
201,
24
48 2004-12-15 16:
14:
52.738000000 Typ
=180 Len=11:
120,
104,
12,
15,
17,
15,
53,
43,
252,
252,
128
49 2000-01-01 00:
00:
00.123457000 Typ
=180 Len=11:
120,
100,
1,
1,
1,
1,
1,
7,
91,
205,
232
50
51 已选择7行。
52
53 与DATE类型对比可以发现,对于TIMESTAMP类型,如果不包含微秒信息或者微秒值为0,那么存储结果和DATE完全相同。当微秒值为0时,Oracle为了节省空间,不会保存微秒信息。
54
55 如果毫秒值不为0,Oracle把微秒值当作一个9位数的数字来保存。
56
57 比如999999000,保存为59,
154,
198,
24。234015000保存为13,
242,
201,
24。
58
59 SQL
> select to_char(
999999000,
'xxxxxxxxxx')
from dual;
60
61 TO_CHAR(
999
62 -----------
63 3b9ac618
64
65 SQL
> select to_number(
'3b',
'xxx') one, to_number(
'9a',
'xxx') two,
66 2 to_number(
'c6',
'xxx') three, to_number(
'18',
'xxx') four
from dual;
67
68 ONE TWO THREE FOUR
69 ---------- ---------- ---------- ----------
70 59 154 198 24
71
72 SQL
> select to_char(
234015000,
'xxxxxxxx')
from dual;
73
74 TO_CHAR(
2
75 ---------
76 df2c918
77
78 SQL
> select to_number(
'd',
'xxx') one, to_number(
'f2',
'xxx') two,
79 2 to_number(
'c9',
'xxx') three, to_number(
'18',
'xxx') four
from dual;
80
81 ONE TWO THREE FOUR
82 ---------- ---------- ---------- ----------
83 13 242 201 24
84
85
86
87 另外,注意一点,不指定精度的情况下,TIMESTAMP默认取6位。长度超过6位,会四舍五入到6位。如果希望保存9位的TIMESTAMP,必须明确指定精度。
88
89 SQL
> alter table test_time modify (col_time
timestamp(
9));
90
91 表已更改。
92
93 SQL
> insert into test_time
values (to_timestamp(
'2000-1-1 0:0:0.123456789',
'syyyy-mm-dd hh24:mi:ss.ff9'));
94
95 已创建
1 行。
96
97 SQL
> select to_char(col_time,
'syyyy-mm-dd hh24:mi:ss.ff9') time,
dump(col_time) dump_time
98 2 from test_time;
99
100 TIME DUMP_TIME
101 ------------------------------ ---------------------------------------------------
102 0001-01-01 00:
00:
00.000000000 Typ
=180 Len=7:
100,
101,
1,
1,
1,
1,
1
103 2000-01-01 00:
00:
00.000000000 Typ
=180 Len=7:
120,
100,
1,
1,
1,
1,
1
104 9999-12-31 23:
59:
59.999999000 Typ
=180 Len=11:
199,
199,
12,
31,
24,
60,
60,
59,
154,
198,
24
105 -0001-01-01 00:
00:
00.000000000 Typ
=180 Len=7:
100,
99,
1,
1,
1,
1,
1
106 -0100-03-04 13:
02:
03.234015000 Typ
=180 Len=11:
99,
100,
3,
4,
14,
3,
4,
13,
242,
201,
24
107 2004-12-15 16:
14:
52.738000000 Typ
=180 Len=11:
120,
104,
12,
15,
17,
15,
53,
43,
252,
252,
128
108 2000-01-01 00:
00:
00.123457000 Typ
=180 Len=11:
120,
100,
1,
1,
1,
1,
1,
7,
91,
205,
232
109 2000-01-01 00:
00:
00.123456789 Typ
=180 Len=11:
120,
100,
1,
1,
1,
1,
1,
7,
91,
205,
21
110 已选择8行。
转载于:https://www.cnblogs.com/chuzhen/p/4173294.html
转载请注明原文地址: https://win8.8miu.com/read-11530.html