क्या पैरामीटर के बिना और पैरामीटर 0 के साथ टाइमस्टैम्प डेटा प्रकार के बीच अलग है:ओरेकल टाइमस्टैम्प डेटा प्रकार
timestamp
वी.एस. timestamp(0)
क्या पैरामीटर के बिना और पैरामीटर 0 के साथ टाइमस्टैम्प डेटा प्रकार के बीच अलग है:ओरेकल टाइमस्टैम्प डेटा प्रकार
timestamp
वी.एस. timestamp(0)
कोष्ठक में संख्या आंशिक सेकंड की शुद्धता को निर्दिष्ट संग्रहीत करने के लिए। तो, (0)
का मतलब है कि किसी सेकेंड के किसी भी हिस्से को स्टोर न करें, और केवल पूरे सेकेंड का उपयोग करें। यदि डिफ़ॉल्ट अलगावकर्ता के बाद 6 अंकों को निर्दिष्ट किया गया है तो डिफ़ॉल्ट मान है। केवल
TIMESTAMP 24-JAN-2012 08.00.05.993847 AM
और निर्दिष्ट करने (0)
भंडार:
तो एक अनिर्दिष्ट मूल्य की तरह एक तारीख संग्रहीत करेंगे
TIMESTAMP(0) 24-JAN-2012 08.00.05 AM
काफी बस संख्या टाइमस्टैम्प की शुद्धता है, कॉलम में आयोजित दूसरे के अंश:
SQL> create table t23
2 (ts0 timestamp(0)
3 , ts3 timestamp(3)
4 , ts6 timestamp(6)
5 )
6/
Table created.
SQL> insert into t23 values (systimestamp, systimestamp, systimestamp)
2/
1 row created.
SQL> select * from t23
2/
TS0
---------------------------------------------------------------------------
TS3
---------------------------------------------------------------------------
TS6
---------------------------------------------------------------------------
24-JAN-12 05.57.12 AM
24-JAN-12 05.57.12.003 AM
24-JAN-12 05.57.12.002648 AM
SQL>
यदि हम एक परिशुद्धता निर्दिष्ट नहीं करते हैं तो टाइमस्टैम्प छह स्थानों पर डिफ़ॉल्ट हो जाता है।
SQL> alter table t23 add ts_def timestamp;
Table altered.
SQL> update t23
2 set ts_def = systimestamp
3/
1 row updated.
SQL> select * from t23
2/
TS0
---------------------------------------------------------------------------
TS3
---------------------------------------------------------------------------
TS6
---------------------------------------------------------------------------
TS_DEF
---------------------------------------------------------------------------
24-JAN-12 05.57.12 AM
24-JAN-12 05.57.12.003 AM
24-JAN-12 05.57.12.002648 AM
24-JAN-12 05.59.27.293305 AM
SQL>
ध्यान दें कि मैं लिनक्स पर चल रहा हूँ तो मेरे TIMESTAMP
स्तंभ वास्तव में मुझे छह स्थानों अर्थात माइक्रोसेकंड को सटीक देता है। यूनिक्स के अधिकांश (सभी?) स्वादों पर यह भी मामला होगा। विंडोज़ पर सीमा तीन स्थानों यानी मिलीसेकंड है। (क्या यह अभी भी विंडोज के सबसे आधुनिक स्वादों के बारे में सच है - उद्धरण वांछित)।
जैसा कि उम्मीद की जा सकती है, दस्तावेज़ीकरण इसमें शामिल है। Find out more।
ओएस इसका समर्थन करता है सिर्फ अगर "जब आप टाइमस्टैम्प बनाने (9) यह आप Nanos का अधिकार देता है"। आप देख सकते हैं, मेरे OEL उपकरण नहीं करता है:
SQL> alter table t23 add ts_nano timestamp(9)
2/
Table altered.
SQL> update t23 set ts_nano = systimestamp(9)
2/
1 row updated.
SQL> select * from t23
2/
TS0
---------------------------------------------------------------------------
TS3
---------------------------------------------------------------------------
TS6
---------------------------------------------------------------------------
TS_DEF
---------------------------------------------------------------------------
TS_NANO
---------------------------------------------------------------------------
24-JAN-12 05.57.12 AM
24-JAN-12 05.57.12.003 AM
24-JAN-12 05.57.12.002648 AM
24-JAN-12 05.59.27.293305 AM
24-JAN-12 08.28.03.990557000 AM
SQL>
(उन अनुगामी शून्य एक संयोग हो सकता है, लेकिन वे नहीं कर रहे हैं।)
एचएम लेकिन जब आप टाइमस्टैम्प बनाते हैं (9) यह आपको सही नैनो देता है? – hudi
THX एक बहुत आप तेजी से था, इसलिए मैं तुम्हें जवाब देने हालांकि दोनों कर रहे हैं स्वीकार सही – hudi
@ हुडी - जाहिर है न तो माइकल या मुझे अंक चाहिए, इसलिए मैं यहां प्रतिनिधि का पीछा नहीं कर रहा हूं। सामान्य सिद्धांत यह है कि आपको * सर्वश्रेष्ठ * उत्तर स्वीकार करना चाहिए, केवल पहले नहीं (जब तक कि पहले भी सबसे अच्छा न हो)। भविष्य में जवाबों को समायोजित करते समय कृपया इसे ध्यान में रखें। – APC
बस स्पष्ट होने के लिए, मैं यह नहीं कह रहा हूं कि माइकल मेरा से बेहतर जवाब नहीं है। – APC