pl sql datetime format
PL SQL डेटाटाइम प्रारूप और डेटाटाइम, टाइमस्टैम्प और अंतराल के आसपास के कुछ उपयोगी कार्यों के बारे में जानें:
में पीएल / एसक्यूएल ट्रिगर्स में पीएल एसक्यूएल श्रृंखला , हमने उनके प्रकार, उपयोग और फायदे के बारे में सीखा।
इस लेख में, हम पीएल / एसक्यूएल में तिथि और समय और डेटाइम, टाइमस्टैम्प और इंटरसिटी डेटा प्रकार के कुछ कार्यों का पता लगाएंगे। इसके अलावा, हम डेटाइम और इंटरवल पर कुछ बुनियादी ऑपरेशन करेंगे।
चर्चा के साथ शुरू करते हैं !!
आप क्या सीखेंगे:
PL SQL डेटाटाइम स्वरूप
PL / SQL में एक तिथि / समय डेटाटाइप है जो हमें दिनांक, अंतराल और समय को पकड़ने और गणना करने की अनुमति देता है। वह चर जो दिनांक या समय का होता है, जिसमें DateTime नामक मान होता है। जो चर अंतराल डेटा प्रकार रखता है, उसे अंतराल कहा जाता है। इन डेटा प्रकारों में से प्रत्येक में ऐसे फ़ील्ड हैं जो मान सेट करते हैं।
डेटटाइम डेटा प्रकार नीचे सूचीबद्ध हैं:
- TIMESTAMP
- टाइम ज़ोन के साथ टाइमस्टैम्प
- स्थानीय समय क्षेत्र के साथ समय
- तारीख
अंतराल डेटा प्रकार नीचे सूचीबद्ध हैं:
- इंटरव्यू के लिए इंटरएक्टिव दिन
- अंतरजातीय महीने के लिए
तारीख
निश्चित लंबाई के डेटासेट को डेटा प्रकार DATE में संग्रहीत किया जाता है। इसमें सेकंड में आधी रात से दिन का समय शामिल है। दिनांक खंड वर्तमान माह के पहले दिन को इंगित करता है और समय खंड मध्यरात्रि को इंगित करता है। यह संख्या और वर्ण डेटा प्रकार दोनों में दिनांक और समय की जानकारी रखता है।
SYSDATE एक तिथि फ़ंक्शन है जो वर्तमान समय और तारीख को प्राप्त करता है। उचित तिथि सीमा 1 जनवरी, 4712 ईसा पूर्व से 31 दिसंबर, 9999 ईस्वी तक है। डिफ़ॉल्ट प्रारूप में वर्ण मान (ओरेकल आरंभीकरण पैरामीटर NLS_DATE_FORMAT द्वारा निर्धारित) स्वाभाविक रूप से PL / SQL द्वारा DATE मान में परिवर्तित किए जाते हैं।
हम तिथियों पर जोड़ और घटाव जैसे गणितीय संचालन लागू कर सकते हैं। PL / SQL दिनों के रूप में पूर्णांक शाब्दिक व्याख्या करता है। उदाहरण के लिए, कल के लिए SYSDATE + 1 अंक।
TIMESTAMP
टाइमस्टैम्प डेटा प्रकार DATE डेटा प्रकार का एक एक्सटेंशन है। इसका उपयोग वर्ष, महीना, घंटा और दूसरा धारण करने के लिए किया जाता है। डिफ़ॉल्ट टाइमस्टैम्प प्रारूप ओरेकल इनिशियलाइज़ेशन पैरामीटर NLS_TIMESTAMP_FORMAT द्वारा निर्धारित किया जाता है।
वाक्य - विन्यास:
TIMESTAMP((precision))
यहां, सटीक एक अनिवार्य पैरामीटर नहीं है और अंकों की संख्या की संख्या को इंगित करता है जो सेकंड फ़ील्ड के आंशिक भाग में है। सटीक 0 से 9 तक कोई पूर्णांक शाब्दिक होना चाहिए। डिफ़ॉल्ट मान 6 पर सेट है।
टाइम ज़ोन के साथ टाइमस्टैम्प
यह डेटा प्रकार TIMESTAMP डेटा प्रकार का विस्तार है और इसमें समय क्षेत्र विस्थापन शामिल है। समय क्षेत्र विस्थापन स्थानीय समय और समन्वित सार्वभौमिक समय (UTC) के बीच समय अंतर (घंटे और मिनट में) है।
समय क्षेत्र प्रारूप के साथ डिफ़ॉल्ट टाइमस्टैम्प ओरेकल इनिशियलाइज़ेशन पैरामीटर NLS_TIMESTAMP_TZ_FORMAT द्वारा निर्धारित किया जाता है। वाक्य - विन्यास:
TIMESTAMP((precision)) WITH TIME ZONE
यहाँ परिशुद्धता एक अनिवार्य पैरामीटर नहीं है और अंकों की संख्या की संख्या को इंगित करता है जो सेकंड फ़ील्ड के आंशिक भाग में है। सटीक 0 से 9 तक कोई पूर्णांक शाब्दिक होना चाहिए। डिफ़ॉल्ट मान 6 पर सेट है।
बाकी वेब सेवाएं परीक्षण साक्षात्कार प्रश्न
हम प्रतीकों के साथ समय क्षेत्र का उल्लेख कर सकते हैं। यह / US / Pacific ’या‘ PDT ’या दोनों के संयोजन जैसे छोटे रूप में हो सकता है। इस प्रकार इस डेटा प्रकार का उपयोग भौगोलिक स्थानों पर जानकारी को कवर करने और कंप्यूटिंग के लिए किया जाता है।
स्थानीय समय क्षेत्र के साथ समय
स्थानीय समय क्षेत्र डेटा प्रकार के साथ टाइमस्टैम्प TIMESTAMP डेटा प्रकार का एक विस्तार है और इसमें समय क्षेत्र विस्थापन शामिल है। समय क्षेत्र विस्थापन स्थानीय समय और समन्वित सार्वभौमिक समय (UTC) के बीच समय अंतर (घंटे और मिनट में) है।
वाक्य - विन्यास:
TIMESTAMP ((precision)) WITH LOCAL TIME ZONE
यहां, सटीक एक अनिवार्य पैरामीटर नहीं है और अंकों की संख्या की गिनती के लिए इंगित करता है जो दूसरे के क्षेत्र के आंशिक भाग में है। सटीक 0 से 9 तक कोई पूर्णांक शाब्दिक होना चाहिए। डिफ़ॉल्ट मान 6 पर सेट है।
LOCAL TIME ZONE वाला TIMESTAMP TIMESTAMP से अलग है TIMEESTAMP with TIME ZONE इस तथ्य के कारण है कि जब हम डेटाबेस में मूल्य डालते हैं, तो मान डेटाबेस के टाइम ज़ोन पर सेट होता है और डेटाबेस कॉलम में टाइम ज़ोन का विस्थापन नहीं होता है। हालांकि, मूल्य प्राप्त करने पर, इसे स्थानीय समय क्षेत्र सत्र में लौटाया जाता है।
अंतरजातीय महीने के लिए
इस डेटा प्रकार का उपयोग वर्षों और महीनों के अंतराल को संग्रहीत और गणना करने के लिए किया जाता है।
वाक्य - विन्यास:
INTERVAL YEAR ((precision)) TO MONTH
यहां, सटीक एक वर्ष के क्षेत्र में अंकों की संख्या की गणना है। 0 से 4 तक सटीकता किसी भी पूर्णांक शाब्दिक होनी चाहिए। डिफ़ॉल्ट मान 2 पर सेट है।
इंटरएक्टिव वर्ष से पहले
इंटरवल ईयर टू सेकेंड डेटा टाइप का इस्तेमाल दिनों, घंटों, मिनटों और सेकंड्स के अंतराल को स्टोर और कंप्यूट करने के लिए किया जाता है।
वाक्य - विन्यास:
INTERVAL DAY ((l_precision)) TO SECOND ((fractional_s_precision))
यहां ही l_ समान तथा fractional_s_preaches क्रमशः दिनों और सेकंड फ़ील्ड में अंकों की संख्या की गिनती होती है।
सटीक 0 से 9 तक कोई पूर्णांक शाब्दिक होना चाहिए। डिफ़ॉल्ट मान क्रमशः 2 और 6 पर सेट हैं।
फ़ील्ड मान: डेटाटाइम और अंतराल
- दूसरा: मान्य दिनांक समय सीमा के मान 00 से 59.9 (मी) हैं जहाँ मी समय-भिन्नात्मक सेकंड को दर्शाता है। मान्य अंतराल सीमा के लिए मान 00 से 59.9 (एम) हैं जहां मी अंतराल अंतराल के सेकंड को दर्शाता है।
- मिनट: मान्य दिनांक समय सीमा के मान 00 से 59 तक हैं। मान्य अंतराल सीमा के मान 0 से 59 तक हैं।
- हूर: मान्य दिनांक समय सीमा के मान 00 से 23 तक हैं। मान्य अंतराल सीमा के मान 0 से 23 तक हैं।
- दिन: मान्य दिनांक समय सीमा के मान 01 से 31 तक हैं (स्थानीय कैलेंडर के नियमों के अनुसार YEAR और MONTH के मूल्यों द्वारा सीमित)। मान्य अंतराल सीमा के लिए मान किसी भी गैर-शून्य पूर्णांक है।
- महीना: मान्य दिनांक समय सीमा के मान 01 से 12 तक हैं। मान्य अंतराल सीमा के मान 0 से 11 तक हैं।
- साल: मान्य दिनांक समय सीमा के लिए मान -4712 से 9999 वर्ष तक शामिल नहीं हैं। वैध अंतराल सीमा के लिए मूल्य कोई भी गैर-शून्य पूर्णांक नहीं है।
- TIMEZONE_HOUR: मान्य दिनांक समय सीमा के मान 12 से 14 तक हैं, इसमें दिन के समय की बचत के परिवर्तन शामिल हैं। यह मान्य अंतराल सीमा पर लागू नहीं है।
- TIMEZONE_MINUTE: मान्य दिनांक समय सीमा के मान 00 से 59 तक हैं। यह मान्य अंतराल सीमा पर लागू नहीं है।
- TIMEZONE_REGION: मान्य दिनांक समय सीमा के लिए मान DATE या TIMESTAMP के लिए लागू नहीं हैं। यह वैध अंतराल सीमा के लिए लागू नहीं है।
- TIMEZONE_ABBR: मान्य दिनांक समय सीमा के लिए मान DATE या TIMESTAMP के लिए लागू नहीं हैं। यह मान्य अंतराल सीमा पर लागू नहीं है।
पीएल एसक्यूएल फंक्शंस इन डेटाइम
यहाँ, m और n में डेटाइम का मान समाहित है।
क्रम सं। | नाम | प्रयोजनों |
---|---|---|
। | SYSDATE () | वर्तमान डेटाटाइम प्राप्त करता है। |
एक | LAST_DAY (m) | महीने का आखिरी दिन होता है। |
दो | ADD_MONTHS (m, n) | एम और एन महीनों तक रकम। |
३ | MONTHS_BETWEEN (m, n) | M और n के बीच में महीनों की संख्या की संख्या प्राप्त करता है। |
४ | NEXT_DAY (दिन, दिन) | मी के बाद के दिन का डेटाइम प्राप्त करता है। |
५ | अगली बार | उपयोगकर्ता द्वारा अनुरोधित समय क्षेत्र से समय / दिन निकालता है। |
६ | राउंड (एम (, यूनिट)) | राउंड एम। |
। | TRUNC (एम (, यूनिट)) | ट्रंकट्स मी। |
टाइमस्टैम्प में PL SQL फ़ंक्शंस
यहाँ, मी टाइमस्टैंप का मान समाहित करता है।
क्रम सं। | नाम | प्रयोजनों |
---|---|---|
। | TO_TIMESTAMP_TZ (m, (प्रारूप)) | स्ट्रिंग मी को टाइमस्टोन के साथ टाइमस्टैम्प में रूपांतरित करता है। |
एक | CURRENT_TIMESTAMP () | वर्तमान समय और सत्र समय क्षेत्र वाले टाइमस्टोन के साथ एक टाइमस्टैम्प लाते हैं। |
दो | FROM_TZ (m, time_zone) | M TIMESTAMP को परिवर्तित करता है और TIMEZONE के साथ TIMESTAMP को time_zone का उल्लेख करता है। |
३ | LOCALTIMESTAMP () | सत्र समय क्षेत्र में स्थानीय समय होने वाले टाइमस्टैम्प को ले जाता है। |
४ | SYSTEMTIMESTAMP () | वर्तमान समय और डेटाबेस टाइम ज़ोन वाले टाइमस्टोन के साथ टाइमस्टैम्प लाते हैं। |
५ | SYS_EXTRACT_UTC (m) | UTC में दिनांक और समय के लिए TIMEZONE के साथ मी टाइमस्टैम्प को परिवर्तित करता है। |
६ | TO_TIMESTAMP (एम, (प्रारूप)) | स्ट्रिंग मी को एक टाइमस्टैम्प में परिवर्तित करता है। |
डेटाटाइम और टाइमस्टैम्प कार्यों के साथ कोड कार्यान्वयन:
BEGIN /* get the current date and time */ DBMS_OUTPUT.put_line ('The output of SYSDATE is:'|| SYSDATE); /* get the TIMESTAMP WITH TIME ZONE with database time and time zone */ DBMS_OUTPUT.put_line ('The output of SYSTIMESTAMP is:' ||SYSTIMESTAMP); /* get the TIMESTAMP with local time in session time zone */ DBMS_OUTPUT.put_line ('The output of LOCALTIMESTAMP:' ||LOCALTIMESTAMP); /*get the TIMESTAMP WITH TIME ZONE with present session time with session time zone */ DBMS_OUTPUT.put_line ('The output of CURRENT_TIMESTAMP:'||CURRENT_TIMESTAMP); /*convert string to TIMESTAMP*/ DBMS_OUTPUT.put_line ('The output of TIMESTAMP:'||TO_TIMESTAMP('12-JAN-2011')); /*to add months*/ DBMS_OUTPUT.put_line ('The output of ADD_MONTHS:'||ADD_MONTHS(SYSDATE,1)); /*to get date and time of following day*/ DBMS_OUTPUT.put_line ('The output of NEXT_DAY:'||NEXT_DAY(SYSDATE,'MONDAY')); /*to truncate date */ DBMS_OUTPUT.put_line ('The output of TRUNC:'||TRUNC(SYSDATE)); /*to get the last day of month */ DBMS_OUTPUT.put_line ('The output of LAST_DAY:'||LAST_DAY (SYSDATE)); END; /
उपरोक्त कोड का आउटपुट:
पीएल एसक्यूएल कार्य अंतराल में
क्रम सं। | नाम | प्रयोजनों |
---|---|---|
एक | NUMTODSINTERVAL (मी, अंतराल) | दूसरे दिन की संख्या को अंतरिम दिवस से पहले ट्रांसफॉर्म कर देता है। |
दो | NUMTOYMINTERVAL (मी, अंतराल) | INTERVAL YEAR TO MONTH में नंबर m को ट्रांसफॉर्म करता है। |
३ | TO_DSINTERVAL (m) | स्ट्रिंग को INTERDAL DAY TO SECOND में बदल देता है। |
४ | TO_YMINTERVAL (m) | INTERVAL YEAR TO MONTH में स्ट्रिंग m को ट्रांसफॉर्म करता है। |
अंकगणित संचालन डाटटाइम और अंतराल में
PL / SQL आपको DateTime और अंतराल के भाव बनाने की अनुमति देता है।
लागू किए जा सकने वाले ऑपरेटरों की सूची इस प्रकार है:
- यदि पहला ऑपरेंड डेटटाइम है और दूसरा ऑपरेंड एक अंतराल है, और हम उन पर (+) ऑपरेटर को लागू करना चाहते हैं, तो परिणाम मान डेटटाइम प्रकार का है।
- यदि पहला ऑपरेंड DateTime है और दूसरा ऑपरेंड एक अंतराल है, और हम उनपर (-) ऑपरेटर को लागू करना चाहते हैं, तो परिणाम मान DateTime प्रकार का है।
- यदि पहला ऑपरेंड अंतराल है और दूसरा ऑपरेंड डेटटाइम है, और हम उन पर (+) ऑपरेटर को लागू करना चाहते हैं, तो परिणाम मान डेटटाइम प्रकार का है।
- यदि पहला ऑपरेंड डेटटाइम है और दूसरा ऑपरेंड डेटटाइम है, और हम उनपर (-) ऑपरेटर को लागू करना चाहते हैं, तो परिणाम मान अंतराल प्रकार का है।
- यदि पहला ऑपरेंड अंतराल है और दूसरा ऑपरेंड एक अंतराल है, और हम उन पर (+) ऑपरेटर को लागू करना चाहते हैं, तो परिणाम मान अंतराल प्रकार का है।
- यदि पहला ऑपरेंड अंतराल है और दूसरा ऑपरेंड एक अंतराल है, और हम उनपर (-) ऑपरेटर को लागू करना चाहते हैं, तो परिणाम मान अंतराल प्रकार का है।
- यदि पहला ऑपरेंड अंतराल है और दूसरा ऑपरेंड संख्यात्मक है, और हम उन पर (*) ऑपरेटर को लागू करना चाहते हैं, तो परिणाम मान अंतराल प्रकार का है।
- यदि पहला ऑपरेंड संख्यात्मक है और दूसरा ऑपरेंड एक अंतराल है, और हम उन पर (*) ऑपरेटर को लागू करना चाहते हैं, तो परिणाम मान अंतराल प्रकार का है।
- यदि पहला ऑपरेंड अंतराल है और दूसरा ऑपरेंड संख्यात्मक है, और हम उन पर (/) ऑपरेटर को लागू करना चाहते हैं, तो परिणाम मान अंतराल प्रकार का है।
डेटाटाइम और इंटरवल में कुछ अंकगणितीय संचालन के साथ कोड कार्यान्वयन।
DECLARE c_dt TIMESTAMP; r_dt TIMESTAMP; s_dt TIMESTAMP; BEGIN c_dt := SYSTIMESTAMP; r_dt:= c_dt + TO_DSINTERVAL ('1600 5:20:1'); DBMS_OUTPUT.PUT_LINE ('Addition of datetime and Interval:' ||r_dt); s_dt:= c_dt - TO_DSINTERVAL ('1600 5:20:1'); DBMS_OUTPUT.PUT_LINE ('Subtraction of datetime and Interval:' || s_dt); END;
उपरोक्त कोड का आउटपुट:
उपरोक्त कोड की व्याख्या:
- कोड में, (‘1600 5: 20: 1 ') का मतलब 1600 दिन, 5 घंटे, 20 मिनट और 1 सेकंड है ।
- पहले आउटपुट में, पहला ऑपरेंड डेटटाइम है, और दूसरा ऑपरेंड एक अंतराल है। उन्हें जोड़ने पर हमें AM में समय के साथ 24-DEC की तारीख मिली।
- दूसरे आउटपुट में, पहला ऑपरेंड डेटटाइम है और दूसरा ऑपरेंड एक अंतराल है। दूसरे से पहली बार घटाने पर हमें पीएम में समय के साथ 20-मार्च की तारीख मिली।
अक्सर पूछे जाने वाले प्रश्न और उत्तर
Q # 1) वर्तमान टाइमस्टैम्प क्या है?
उत्तर: वर्तमान टाइमस्टैम्प या CURRENT_TIMESTAMP एक टाइमस्टैम्प का वर्णन करता है, जो सर्वर में SQL स्टेटमेंट निष्पादित करते समय दिन की घड़ी के पढ़ने पर निर्भर करता है।
Q # 2) Oracle में Sysdate की क्या वापसी है?
उत्तर: Sysdate () फ़ंक्शन ऑपरेटिंग दिनांक और समय को ऑपरेटिंग सिस्टम में कॉन्फ़िगर किया गया है जहां डेटाबेस स्थित है। डेटा प्रकार का मान जो इसके द्वारा लौटाया जाता है वह DATE है।
Q # 3) कौन सा PL / SQL फ़ंक्शन वर्तमान सिस्टम की तारीख और समय देगा?
उत्तर: PL / SQL फ़ंक्शन जो वर्तमान सिस्टम की तारीख और समय देता है वह SYSDATE () है।
Q # 4) DUAL SQL क्या है?
उत्तर: डीयूएएल एक डेटाबेस तालिका है जो डिफ़ॉल्ट रूप से डेटा डिक्शनरी के साथ बनाई जाती है। इसमें एक पंक्ति और एक कॉलम होता है। DUAL का स्वामित्व SYS के पास है लेकिन इसका उपयोग सभी उपयोगकर्ता कर सकते हैं।
Q # 5) आप पीएल एसक्यूएल में दिनांक चर कैसे घोषित करते हैं?
उत्तर: हम नीचे दिए गए सिंटैक्स के साथ PL / SQL में दिनांक चर घोषित कर सकते हैं:
DECLARE stdt DATE := to_date ('06/06/2006', 'DD/MM/YYYY');
Q # 6) ओरेकल में तारीख प्रारूप क्या है?
सॉफ्टवेयर परीक्षण में बग जीवन चक्र
उत्तर: इनपुट और आउटपुट के लिए Oracle में मानक तिथि प्रारूप ‘DD / MON / YY’ है। यह मान NLS_DATE_FORMAT पैरामीटर में कॉन्फ़िगर किया गया है।
निष्कर्ष
इस PL SQL डेटाटाइम प्रारूप ट्यूटोरियल में, हमने PL / SQL दिनांक और समय की कुछ बुनियादी अवधारणाओं पर विस्तार से चर्चा की है जो उन्हें प्रोग्रामिंग में उपयोग करने के लिए आवश्यक हैं।
हमने नीचे सूचीबद्ध निम्नलिखित विषयों को कवर किया है:
- तिथि और समय।
- डेटाइम, टाइमस्टैम्प और अंतराल के आसपास के कार्य।
- डेटाटाइम और इंटरवल पर अंकगणित संचालन।
- डेटाटाइम और इंटरवल में फ़ील्ड्स मान।
अनुशंसित पाठ
- C ++ में दिनांक और समय कार्य उदाहरण के साथ
- उदाहरणों के साथ अजगर डेटाइम ट्यूटोरियल
- C # DateTime ट्यूटोरियल: उदाहरण के साथ C # में दिनांक और समय के साथ कार्य करना
- उपप्रोग्राम: पीएल SQL प्रक्रिया और उदाहरण के साथ कार्य
- VBScript तिथि कार्य: दिनांक प्रारूप, DateAdd और cDate कार्य
- पीएल SQL ट्यूटोरियल उदाहरण के साथ शुरुआती के लिए | पीएल / एसक्यूएल क्या है