दिनांक डेटा प्रकार के मान में हमेशा दिनांक और समय घटक होते हैं। यदि आप डेटाटाइम मान का केवल समय भाग निर्दिष्ट करते हैं जैसा आपने किया था, तो दिनांक भाग डिफ़ॉल्ट रूप से चालू माह के पहले दिन पर आ जाता है।
यहां एक जगह (7वां पैराग्राफ) है Oracle दस्तावेज़ में जहाँ यह व्यवहार प्रलेखित है।
गैर-दस्तावेज भी है TIME
शाब्दिक और TIME
डेटा प्रकार (10407
. के माध्यम से सक्षम करने की आवश्यकता है (डेटाटाइम टाइम डेटाटाइप निर्माण) ईवेंट) यदि आपको दिनांक भाग के बिना, केवल समय का उपयोग और स्टोर करने की आवश्यकता है।
यहाँ TIME
. का उपयोग करने का एक छोटा सा प्रदर्शन दिया गया है शाब्दिक और TIME
डेटा प्रकार। लेकिन फिर से यह अनिर्दिष्ट और असमर्थित विशेषता है।
SQL> select time '11:32:00' as res
2 from dual;
res
------------------------
11.32.00.000000000 AM
आप 10407
. को सक्षम किए बिना शाब्दिक समय का उपयोग कर सकते हैं घटना, लेकिन TIME
. के एक स्तंभ को परिभाषित करने में सक्षम होने के लिए डेटा टाइप करें 10407
ईवेंट को सक्षम करने की आवश्यकता है:
SQL> create table time_table(time_col time);
create table time_table(time_col time)
*
ERROR at line 1:
ORA-00902: invalid datatype
-- enable 10407 event
SQL> alter session set events '10407 trace name context forever, level 1';
Session altered.
अब हम time
. के कॉलम के साथ एक टेबल बना सकते हैं डेटा प्रकार:
SQL> create table time_table(time_col time);
Table created.
SQL> insert into time_table(time_col)
2 values(time '11:34:00');
1 row created.
SQL> select * from time_table;
TIME_COL
---------------
11.34.00 AM
SQL> alter session set events '10407 trace name context off';
Session altered.