2012-01-24 17 views

उत्तर

51

कोष्ठक में संख्या आंशिक सेकंड की शुद्धता को निर्दिष्ट संग्रहीत करने के लिए। तो, (0) का मतलब है कि किसी सेकेंड के किसी भी हिस्से को स्टोर न करें, और केवल पूरे सेकेंड का उपयोग करें। यदि डिफ़ॉल्ट अलगावकर्ता के बाद 6 अंकों को निर्दिष्ट किया गया है तो डिफ़ॉल्ट मान है। केवल

TIMESTAMP 24-JAN-2012 08.00.05.993847 AM 

और निर्दिष्ट करने (0) भंडार:

तो एक अनिर्दिष्ट मूल्य की तरह एक तारीख संग्रहीत करेंगे

TIMESTAMP(0) 24-JAN-2012 08.00.05 AM 

See Oracle documentation on data types.

+0

THX एक बहुत आप तेजी से था, इसलिए मैं तुम्हें जवाब देने हालांकि दोनों कर रहे हैं स्वीकार सही – hudi

+3

@ हुडी - जाहिर है न तो माइकल या मुझे अंक चाहिए, इसलिए मैं यहां प्रतिनिधि का पीछा नहीं कर रहा हूं। सामान्य सिद्धांत यह है कि आपको * सर्वश्रेष्ठ * उत्तर स्वीकार करना चाहिए, केवल पहले नहीं (जब तक कि पहले भी सबसे अच्छा न हो)। भविष्य में जवाबों को समायोजित करते समय कृपया इसे ध्यान में रखें। – APC

+2

बस स्पष्ट होने के लिए, मैं यह नहीं कह रहा हूं कि माइकल मेरा से बेहतर जवाब नहीं है। – APC

27

काफी बस संख्या टाइमस्टैम्प की शुद्धता है, कॉलम में आयोजित दूसरे के अंश:

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> 

(उन अनुगामी शून्य एक संयोग हो सकता है, लेकिन वे नहीं कर रहे हैं।)

+0

एचएम लेकिन जब आप टाइमस्टैम्प बनाते हैं (9) यह आपको सही नैनो देता है? – hudi

संबंधित मुद्दे