इस लेख में, हम पोस्टग्रेएसक्यूएल में तारीखों के साथ काम करने पर गौर करेंगे, जिसमें विभिन्न तारीख डेटा प्रकार और प्रारूप, उनके कार्य, और आपके दैनिक दिनचर्या में उनसे निपटने के तरीके शामिल हैं। हम उदाहरणों को स्पष्ट करने के लिए PostgreSQL के लिए dbForge Studio का उपयोग करेंगे।
आप डेटा विश्लेषण और डेटा संग्रहण के लिए दिनांक और टाइमस्टैम्प का उपयोग कर सकते हैं, क्योंकि वे आपको यह निर्धारित करने की अनुमति देते हैं कि वास्तव में कोई घटना कब हुई थी। तिथियों के बारे में मुश्किल बात यह है कि उनके प्रारूप अलग-अलग देशों में भिन्न होते हैं, इसलिए डेटाबेस प्रबंधन में शुरुआती लोगों के लिए यह काफी चुनौतीपूर्ण कार्य हो सकता है। दिनांक कॉलम का डेटा प्रकार और प्रारूप हमेशा उपयोगकर्ता द्वारा दर्ज की गई जानकारी के अनुरूप होना चाहिए। इसके अलावा, आपको अपने उपयोगकर्ताओं की प्राथमिकताओं को पूरा करने के लिए दिनांक प्रारूप को संशोधित करना चाहिए। Postgres डेटा स्वरूपों की एक विस्तृत श्रृंखला को संभालने में सक्षम है।
सामग्री
- PostgreSQL DATE डेटा प्रकार का अवलोकन
- वर्तमान दिनांक को डिफ़ॉल्ट मान के रूप में उपयोग करना
- दिनांक कार्यों को पोस्टग्रेज करता है
- वर्तमान तिथि प्राप्त करने के लिए Now() फ़ंक्शन का उपयोग करना
- TO_CHAR() फ़ंक्शन का उपयोग करना - एक निर्दिष्ट प्रारूप में दिनांक मान आउटपुट करें
- दो तिथियों के बीच अंतराल प्राप्त करने के लिए ऋणात्मक ऑपरेटर का उपयोग करना
- वर्षों, महीनों और दिनों में दिनांक अंतर प्राप्त करने के लिए AGE() फ़ंक्शन का उपयोग करना
- दिनांक मान से वर्ष, तिमाही, माह, सप्ताह, दिन प्राप्त करने के लिए EXTRACT() फ़ंक्शन का उपयोग करना
- किसी स्ट्रिंग को टाइमस्टैम्प में बदलने के लिए TO_TIMESTAMP() का उपयोग करना
- सारांश
PostgreSQL DATE डेटा प्रकार का अवलोकन
DATE
PostgreSQL में डेटा प्रकार का उपयोग YYYY-MM-DD प्रारूप (जैसे 2022-03-24) में तिथियों को संग्रहीत करने के लिए किया जाता है। किसी कॉलम में दिनांक मान संग्रहीत करने के लिए इसे 4 बाइट्स की आवश्यकता होती है। ध्यान दें कि जल्द से जल्द संभावित तिथि 4713 ईसा पूर्व है और नवीनतम संभावित तिथि 5874897 ईस्वी है।
इसे लिखने के चरण में कोड की पठनीयता को बनाए रखना अत्यधिक महत्वपूर्ण है। PostgreSQL के लिए dbForge Studio एक सुविधाजनक और सहज PostgreSQL फ़ॉर्मेटर का दावा कर सकता है। कोड फ़ॉर्मेटिंग, सिंटैक्स जाँच और कोड पूर्णता का ध्यान रखते हुए, PostgreSQL के लिए पोस्टग्रेज़ SQL फ़ॉर्मेटर सुविधा बिल्ट-इन dbForge Studio आपको DATE डेटा प्रकार से निपटने पर भी ध्यान केंद्रित करने देगा।
वर्तमान दिनांक को डिफ़ॉल्ट मान के रूप में उपयोग करना
DATE
. में डिफ़ॉल्ट मान Postgres डेटाबेस में कॉलम DEFAULT CURRENT DATE
कीवर्ड का उपयोग करके सेट किया जा सकता है , जैसा कि नीचे लिपि में है:
CREATE TABLE myevents (
event_id serial PRIMARY KEY,
event_details VARCHAR (255) NOT NULL,
event_date DATE NOT NULL DEFAULT CURRENT_DATE
);
INSERT INTO myevents (event_details)
VALUES('Meeting the client ABC');
SELECT * FROM myevents;
जैसा कि आप देख सकते हैं, [ईवेंट की तारीख] . के लिए एक मान YYYY-MM-DD के प्रारूप में वर्तमान सिस्टम तिथि का उपयोग करते हुए, PostgreSQL सर्वर द्वारा कॉलम स्वचालित रूप से डाला जाता है।
डेट फ़ंक्शन पोस्ट करता है
कभी-कभी, दिनांक स्वरूप को बदलना या PostgreSQL तालिका में मानों की गणना करना महत्वपूर्ण होता है। हमें पूरी दुनिया में अलग-अलग समय क्षेत्रों के उपयोगकर्ताओं के लिए ऐसा करने की आवश्यकता हो सकती है। इस मामले में, SQL फ़ंक्शन महत्वपूर्ण हैं।
वर्तमान तिथि प्राप्त करने के लिए Now() फ़ंक्शन का उपयोग करना
SELECT now();
DATETIME
. कास्ट करने के लिए आप डबल कोलन (::) का उपयोग कर सकते हैं एक DATE
के लिए मान मान जैसा कि नीचे दिखाया गया है:
वर्तमान सिस्टम टाइमस्टैम्प NOW()
. द्वारा लौटाया जाता है समारोह। वाक्य रचना इस प्रकार है:
SELECT now()::date;
TO_CHAR() फ़ंक्शन का उपयोग करना - दिनांक मान को एक निर्दिष्ट प्रारूप में आउटपुट करना
एक निर्दिष्ट प्रारूप में पोस्टग्रेज दिनांक मान का आउटपुट प्रस्तुत करने के लिए, TO_CHAR()
समारोह काम आता है। वाक्य रचना इस प्रकार है:
TO_CHAR(expression, format)
TO_CHAR()
. द्वारा दो पैरामीटर स्वीकार किए जाते हैं समारोह:
- इनपुट दिनांक :एक विशिष्ट प्रारूप में परिवर्तित होने की तिथि।
- तिथि प्रारूप :नए दिनांक प्रारूप विनिर्देश के लिए प्लेसहोल्डर।
आइए देखें कि मौजूदा दिनांक मानों को [MyEvents] . से कैसे परिवर्तित किया जाए DD-MM-YYYY प्रारूप में तालिका।
SELECT event_details,event_date as ExistingDateformat,
to_char(event_date,'DD-MM-YYYY') As NewDateFormat FROM myevents;
वर्तमान टाइमस्टैम्प को पसंदीदा प्रारूप में बदलने के लिए, आप TO_CHAR()
को फ्यूज कर सकते हैं और NOW()
कार्य।
SELECT TO_CHAR(NOW() :: DATE, 'dd-mm-yyyy');
दो तिथियों के बीच अंतराल प्राप्त करने के लिए ऋणात्मक ऑपरेटर का उपयोग करना
दो तिथियों के बीच अंतर की गणना करने के लिए, ऋण (-) ऑपरेटर का उपयोग करें। नीचे दी गई क्वेरी वर्तमान टाइमस्टैम्प और [eventdate] . के बीच की समयावधि प्रदान करती है MyEvents . से टेबल।
SELECT event_date,now() as currentdate,
now()-event_date as Interval FROM myevents
where event_id=2;
आप एक निश्चित समय बीत जाने पर वापस आने की तिथि के लिए एक अंतराल का चयन भी कर सकते हैं। नीचे दी गई क्वेरी पर एक नज़र डालें:
SELECT (NOW() + interval '3 hour') AS threehourslater,
(NOW() + interval '2 day') AS Twodaylater,
(NOW() - interval '2 year') AS TwoYearBefore,
(event_date- interval '1 year') as eventdatedifference
from myevents;
वर्षों, महीनों और दिनों में दिनांक अंतर प्राप्त करने के लिए AGE() फ़ंक्शन का उपयोग करना
AGE()
. के साथ फ़ंक्शन, आप वर्षों, महीनों और दिनों में दिनांक अंतर प्राप्त कर सकते हैं। इस फ़ंक्शन का उपयोग किसी व्यक्ति की आयु निर्धारित करने के लिए किया जा सकता है। पहली तारीख का मान इस फ़ंक्शन के साथ दूसरे दिनांक मान से घटाया जाता है, जो दो दिनांक इनपुट स्वीकार करता है। जब फ़ंक्शन स्क्रिप्ट में मानों को उलट दिया जाता है, तो परिणाम एक नकारात्मक मान होता है।
आइए जानें उस व्यक्ति की उम्र जिसकी जन्मतिथि 1995-10-09 है। वाक्य रचना इस प्रकार है:
SELECT current_date,
AGE(timestamp '1995-10-09'::timestamp) as EmpAge;
एक तिथि मान से वर्ष, तिमाही, माह, सप्ताह, दिन प्राप्त करने के लिए EXTRACT() फ़ंक्शन का उपयोग करना
EXTRACT()
फ़ंक्शन निर्दिष्ट दिनांक मान से एक दिन, सप्ताह, माह, वर्ष और एक चौथाई लौटाता है।
एक साल निकालें:
SELECT EXTRACT(YEAR FROM TIMESTAMP '2022-04-09 10:30:15') as year;
एक महीना निकालें:
SELECT EXTRACT(Month FROM TIMESTAMP '2022-04-09 10:30:15') as Month;
एक चौथाई निकालें:
SELECT EXTRACT(QUARTER FROM TIMESTAMP '2022-04-09 10:30:15') as QUARTER;
सप्ताह का दिन निकालें:
SELECT EXTRACT(DOW FROM TIMESTAMP '2022-04-09 10:30:15') as DOW;
वर्ष का दिन निकालें:
SELECT EXTRACT(DOY FROM TIMESTAMP '2022-04-09 10:30:15') as DOY;
ध्यान दें कि dbForge Studio प्रत्येक क्वेरी निष्पादन परिणामों को एक अलग टैब में प्रदर्शित करता है।
EXTRACT()
फ़ंक्शन को आसानी से INTERVAL
. के साथ जोड़ा जा सकता है . आइए मान लें कि हम अंतराल को 5 साल 8 महीने 23 दिन 08 घंटे 10 मिनट और 20 सेकंड के रूप में सेट करना चाहते हैं। अलग-अलग मान EXTRACT
. द्वारा लौटाए जाते हैं समारोह।
SELECT EXTRACT(YEAR
FROM INTERVAL '5 years 8 month 23 days 08 hours 10 minutes 20 seconds' ),
EXTRACT(Month
FROM INTERVAL '5 years 8 month 23 days 08 hours 10 minutes 20 seconds' ),
EXTRACT(Day
FROM INTERVAL '5 years 8 month 23 days 08 hours 10 minutes 20 seconds' ),
EXTRACT(hour
FROM INTERVAL '5 years 8 month 23 days 08 hours 10 minutes 20 seconds' ),
EXTRACT(Minute
FROM INTERVAL '5 years 8 month 23 days 08 hours 10 minutes 20 seconds' );
स्ट्रिंग को टाइमस्टैम्प में बदलने के लिए TO_TIMESTAMP() का उपयोग करना
यदि आप टाइमस्टैम्प को किसी भिन्न समय क्षेत्र में बदलना चाहते हैं, तो आप यूटीसी (यूनिवर्सल टाइम कोऑर्डिनेटर) में दिनांक मान रख सकते हैं और आवश्यकतानुसार समय क्षेत्र बदल सकते हैं।
SELECT * FROM pg_timezone_names;
वर्तमान समय क्षेत्र की जांच करने के लिए, SHOW TIMEZONE
का उपयोग करें आदेश।
आप AT TIME ZONE
use का उपयोग कर सकते हैं pg_timezone_names से आवश्यक समय क्षेत्र मान चुनकर चुने हुए समय क्षेत्र के लिए आउटपुट प्राप्त करने के लिए टेबल।
SELECT '2022-04-09 10:36:19'::timestamp AT TIME ZONE 'America/Los_Angeles';
AT TIME ZONE
आपको विभिन्न समय क्षेत्र आउटपुट की अनुमति देता है।
SELECT '2022-04-09 10:36:19'::timestamp AT TIME ZONE 'America/Washington';
SELECT '2022-04-09 10:36:19'::timestamp AT TIME ZONE 'Asia/Beijing';
SELECT '2022-04-09 10:36:19'::timestamp AT TIME ZONE 'Europe/Kyiv';
सारांश
संक्षेप में, PostgreSQL DATE
तालिकाओं में दिनांक और टाइमस्टैम्प संग्रहीत करते समय डेटा प्रकार बहुत महत्वपूर्ण और उपयोगी होता है, इसलिए यह एक रिलेशनल डेटाबेस में काफी सामान्य है। उनके उपयोग की सीमा अविश्वसनीय रूप से विस्तृत है, इसलिए किसी भी देश और समय क्षेत्र में किसी भी उपयोगकर्ता के लिए उन्हें स्पष्ट करना इतना महत्वपूर्ण है। विभिन्न पोस्टग्रेज़ फ़ंक्शंस के साथ, उपयोगकर्ताओं की ज़रूरतों को पूरा करना आसान है, क्योंकि आप तिथियों को बदल सकते हैं ताकि उन्हें एक विशिष्ट समय क्षेत्र में उपयोग किया जा सके, एक निश्चित प्रारूप और अन्य विवरण जो इस तरह के डेटा के साथ काम करना बहुत आसान बनाते हैं। अंत में, यदि आप एक सहज ज्ञान युक्त ग्राफिकल इंटरफ़ेस और एक संवर्धित कमांड लाइन के सही संयोजन की तलाश कर रहे हैं जो DATE
के साथ काम कर सके डेटा प्रकार और भी सुखद, PostgreSQL के लिए dbForge Studio काम आएगा।