वहाँ विभिन्न सतही रूप से समान लेकिन आंतरिक रूप से भिन्न डेटाटाइम डेटाटाइप हैं। systimestamp
टाइप 188 है (और इसमें समय क्षेत्र की जानकारी है); एक टाइमस्टैम्प शाब्दिक समय क्षेत्र की जानकारी के बिना 187 टाइप है और इसके साथ 188 है; और एक सादा टाइमस्टैम्प कॉलम 180 टाइप है:
select dump(systimestamp) from dual;
DUMP(SYSTIMESTAMP)
--------------------------------------------------------------------------------
Typ=188 Len=20: 223,7,7,31,9,50,28,11,128,203,79,35,1,0,5,0,0,0,0,0
select dump(timestamp '2015-07-31 08:55:06.157047 +00:00') from dual;
DUMP(TIMESTAMP'2015-07-3108:55:06.157047+00:00')
---------------------------------------------------------------
Typ=188 Len=20: 223,7,7,31,8,55,6,0,216,88,92,9,0,0,5,0,0,0,0,0
select dump(timestamp '2015-07-31 08:55:06.157047') from dual;
DUMP(TIMESTAMP'2015-07-3108:55:06.157047')
---------------------------------------------------------------
Typ=187 Len=20: 223,7,7,31,8,55,6,0,216,88,92,9,0,0,3,0,0,0,0,0
create table t (ts timestamp);
insert into t (ts) values (timestamp '2015-07-31 08:55:06.157047');
select dump(ts) from t;
DUMP(TS)
--------------------------------------------------------------------------------
Typ=180 Len=11: 120,115,7,31,9,56,7,9,92,88,216
उनमें से, केवल एक टाइमस्टैम्प कॉलम आपके द्वारा लिंक किए गए लेख में आंतरिक प्रारूप का उपयोग करता है, वर्ष के लिए अतिरिक्त -100 नोटेशन का उपयोग करता है।
दूसरों के लिए, पहला बाइट आधार-256 संशोधक है, और दूसरा बाइट आधार 256 वर्ष है; तो आप इसकी व्याख्या इस प्रकार करेंगे
223 + (7 * 256) = 2015
आप My Oracle सपोर्ट दस्तावेज़ 69028.1 में आंतरिक संग्रहण के बारे में अधिक पढ़ सकते हैं। वह, और टिप्पणियों में जुड़े पहले के उत्तर, दो दिनांक प्रकारों को देखें, लेकिन टाइमस्टैम्प को सेकंड के समान माना जाता है, और बाकी में से कुछ को 187/188 प्रकार के लिए अनुमान लगाया जा सकता है - वैसे भी आंशिक-सेकंड भाग:
Byte 1 - Base 256 year modifier: 223
2 - Base 256 year: 7 (256 * 7 = 1792 + 223 = 2015)
3 - Month: 7
4 - Day: 31
5 - Hours: 8
6 - Minutes: 55
7 - Seconds: 6
8 - Unused?
9 - Base 256 nanoseconds: 216
10 - Base 256 ns modifier 1: 256 * 88 = 22528
11 - Base 256 ns modifier 2: 256 * 256 * 92 = 6029312
12 - Base 256 ns modifier 3: 256 * 256 * 256 * 9 = 150994944
=> actual nanoseconds = 216 + 22528 + 6029312 + 150994944
=> 157047000
13-20 - Time zone data?
टाइप 120 के लिए भिन्नात्मक सेकंड समान होते हैं लेकिन बाइट्स उलटे होते हैं।