PostgreSQL
 sql >> डेटाबेस >  >> RDS >> PostgreSQL

PostgreSQL में तिथियों के साथ कार्य करना


परिचय

आपके डेटाबेस के अंदर दिनांक मानों को संग्रहीत करने की क्षमता आपको अपने प्रश्नों और अपने डेटा के विश्लेषण के लिए एक समय तत्व जोड़ने की अनुमति देती है। यह जानना महत्वपूर्ण है कि अपने संबंधित डेटाबेस में दिनांक प्रकारों के साथ कैसे काम किया जाए ताकि आप अपनी रिपोर्टिंग में सटीक हो सकें, चाहे वह ऑर्डर की जानकारी हो, लोगों की उम्र हो या कोई अन्य उपयोग का मामला हो।

इस गाइड में, हम DATE . को स्टोर करने के बारे में चर्चा करने जा रहे हैं PostgreSQL में प्रकार और उनके साथ काम करने के विभिन्न तरीके।



PostgreSQL DATE डेटा प्रकार

DATE PostgreSQL में टाइप करें बिना किसी संबद्ध समय मान के दिनांक को संग्रहीत कर सकता है:

DATE

PostgreSQL दिनांक मान संग्रहीत करने के लिए 4 बाइट्स का उपयोग करता है। PostgreSQL में दिनांक मानों के लिए मानों की श्रेणी 4713 ईसा पूर्व से 5874897 ईस्वी तक है।

दिनांक मान संग्रहीत करते समय, PostgreSQL yyyy-mm-dd . का उपयोग करता है प्रारूप उदा. 1994-10-27. इस प्रारूप का उपयोग PostgreSQL में डेटा डालने के लिए भी किया जाता है।

PostgreSQL में, वर्तमान दिनांक का डिफ़ॉल्ट दिनांक मान सेट करना संभव है। यह DEFAULT . का उपयोग करके अपनी तालिका बनाते समय किया जा सकता है और CURRENT_DATE खोजशब्द। last_checkout हमारी लाइब्रेरी चेकआउट तालिका से कॉलम डिफ़ॉल्ट रूप से वर्तमान तिथि को स्वीकार करता है:

CREATE TABLE checkouts (        author_id serial PRIMARY KEY,        author_name VARCHAR (255) NOT NULL,        book_title VARCHAR (255) NOT NULL,        published_date DATE NOT NULL,          last_checkout DATE NOT NULL DEFAULT CURRENT_DATE);

इस तालिका संरचना का अनुसरण करते हुए, हम INSERT INTO . के साथ डेटा सम्मिलित कर सकते हैं कथन:

INSERT INTO checkouts (author_name, book_title, published_date)VALUES('James Joyce', 'Ulysses', '1922-02-02');

फिर checkouts की क्वेरी करते समय तालिका, हम निम्नलिखित प्राप्त करते हैं:

SELECT * FROM checkouts; author_id | author_name | book_title | published_date | last_checkout -----------+-------------+------------+----------------+---------------         1 | James Joyce |   Ulysses  |   1922-02-02   |  2021-09-27(1 row)


PostgreSQL DATE फ़ंक्शन

DATE . के इन और आउट्स को जानकर PostgreSQL में टाइप करें, फिर आप अपने द्वारा संग्रहीत जानकारी के साथ काम करने वाले फ़ंक्शंस का उपयोग करने में सक्षम होते हैं। हम पिछले अनुभाग में पेश की गई तालिका के निर्माण के कुछ सामान्य कार्यों के माध्यम से चलेंगे।


वर्तमान तिथि प्राप्त करें

PostgreSQL में, आप बिल्ट-इन NOW() . का उपयोग करके वर्तमान दिनांक और समय प्राप्त कर सकते हैं समारोह। निम्नलिखित कथन दिन और समय दोनों लौटाएगा:

SELECT NOW();              now              ------------------------------- 2021-09-27 15:22:53.679985+02(1 row)

यदि समय रुचि का नहीं है, तो आप केवल डबल कोलन :: के साथ दिनांक वापस करने के लिए निर्दिष्ट कर सकते हैं एक DATETIME कास्ट करने के लिए DATE . का मान मूल्य:

SELECT NOW()::date;    now     ------------ 2021-09-27(1 row)

CURRENT_DATE का उपयोग कर रहे हैं जैसा कि नीचे दिखाया गया है, वर्तमान तिथि प्राप्त करने का एक और तरीका है:

SELECT CURRENT_DATE; current_date -------------- 2021-09-27(1 row)

ये तीनों विकल्प आपको yyyy-mm-dd . में तारीख लौटा देंगे प्रारूप। PostgreSQL के भीतर, आप चाहें तो इस आउटपुट के प्रारूप को समायोजित कर सकते हैं।



एक विशिष्ट प्रारूप में एक तिथि मान आउटपुट करें

किसी विशिष्ट प्रारूप में दिनांक मान को आउटपुट करने के लिए, आप TO_CHAR() . का उपयोग करते हैं समारोह। यह फ़ंक्शन दो पैरामीटर स्वीकार करता है:

  1. वह मान जिसे आप प्रारूपित करना चाहते हैं
  2. वह टेम्पलेट जो आउटपुट स्वरूप को परिभाषित करता है
SELECT TO_CHAR(NOW()::date, 'dd/mm/yyyy');  to_char   ------------ 27/09/2021(1 row)

आप दिनांक को Sep 27, 2021 . जैसे प्रारूप में भी प्रदर्शित कर सकते हैं :

SELECT TO_CHAR(NOW():: DATE, 'Mon dd, yyyy');   to_char    -------------- Sep 27, 2021(1 row)

सिस्टम की आवश्यकताओं के आधार पर, आपको एक विशिष्ट तरीके से स्वरूपित दिनांक की आवश्यकता हो सकती है। यह एक ऐसा परिदृश्य है जहां PostgreSQL में आउटपुट निर्दिष्ट करने में सक्षम होना उपयोगी है।



दो तिथियों के बीच अंतराल प्राप्त करें

PostgreSQL आपको - . का उपयोग करके दो तिथियों के बीच अंतराल प्राप्त करने की अनुमति देता है ऑपरेटर। इस ऑपरेटर का उपयोग करने से आप किसी कर्मचारी के कार्यकाल या किसी पुस्तक के प्रकाशन के बाद के समय जैसी चीज़ों की गणना कर सकते हैं।

हमारे उदाहरण में हम यह जानना चाहते हैं कि जॉयस के यूलिसिस को कितने दिन हो चुके हैं published_date . से वर्तमान तिथि घटाकर प्रकाशित किया गया था :

SELECT                author_name,                book_title,                now()::date - published_date as diffFROM                checkouts;

इसके परिणामस्वरूप:

 author_name | book_title |            diff            -------------+------------+---------------------------- James Joyce |  Ulysses   |         36397 days (1 row)


तारीख मानों का उपयोग करके आयु की गणना करना

हम AGE() का उपयोग करके वर्षों, महीनों और दिनों में वर्तमान तिथि पर आयु की गणना करने के लिए उसी उदाहरण के साथ जारी रख सकते हैं। समारोह। निम्नलिखित कथन AGE() का उपयोग करता है हमारे पुस्तकालय से एक प्रकाशन की आयु की गणना करने के लिए कार्य करता है checkouts टेबल:

चेकआउट से
SELECT                author_name,                book_title,                AGE(published_date)FROM                checkouts;

इस फ़ंक्शन से हम गणना कर सकते हैं कि इन्वेंट्री में कोई पुस्तक कितनी पुरानी है:

 author_name | book_title |           age           -------------+------------+------------------------- James Joyce |  Ulysses   | 99 years 7 mons 25 days(1 row)

यह नोट करना महत्वपूर्ण है कि यदि आप AGE() . में एक ही तिथि पास करते हैं फ़ंक्शन, तो यह स्वचालित रूप से घटाना और गणना करने के लिए वर्तमान तिथि का उपयोग करेगा। आप उम्र की गणना करने के लिए फ़ंक्शन में दो तिथियां भी पास कर सकते हैं जैसे:

SELECT                author_name,                book_title,                AGE('2000-01-01',published_date),FROM                checkouts;

इसके परिणामस्वरूप:

 author_name | book_title |           age            -------------+------------+-------------------------- James Joyce |  Ulysses   | 77 years 10 mons 27 days(1 row)


किसी दिनांक मान से वर्ष, तिमाही, माह, सप्ताह या दिन निकालना

अंतिम कार्य जिसे हम कवर करने जा रहे हैं वह है EXTRACT() PostgreSQL में फ़ंक्शन जो आपको वर्ष, तिमाही, महीने और दिन जैसे दिनांक के घटकों को अलग करने की अनुमति देता है।

निम्न कथन Ulysses की प्रकाशित तिथि से वर्ष, माह और दिन निकालता है :

SELECT             author_name,             book_title,             EXTRACT(YEAR FROM published_date) AS YEAR,            EXTRACT(MONTH FROM published_date) AS MONTH,             EXTRACT(DAY FROM published_date) AS DAY FROM             checkouts;

परिणाम निम्न की तरह दिखाई देंगे:

 author_name | book_title | year | month | day -------------+------------+------+-------+----- James Joyce |  Ulysses   | 1922 |   2   |  2(1 row)

यह जानने के लिए एक उपयोगी कार्य है कि उदाहरण के लिए आपको अपने डेटा के साथ गणना के लिए दिनांक मान के केवल एक हिस्से की आवश्यकता हो सकती है।




निष्कर्ष

इस गाइड में, हमने DATE . के साथ आप क्या कर सकते हैं, इसकी बुनियादी बातों को शामिल किया है PostgreSQL में डेटा प्रकार। यह जानना महत्वपूर्ण है कि आपके डेटाबेस के अंदर दिनांक डेटा कैसे काम करता है। जिस तरह से आप इसे एक्सेस कर सकते हैं और उस पर काम कर सकते हैं, उस पर समझ रखने से आप उम्र की गणना कर सकते हैं, अपने प्रश्नों में एक्सट्रैक्शन निष्पादित कर सकते हैं, और यदि आवश्यक हो तो किसी अन्य सिस्टम की आवश्यकताओं के मिलान के लिए अपने आउटपुट को कॉन्फ़िगर भी कर सकते हैं।




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Django अद्वितीय एक साथ बाधा विफलता?

  2. C++ के लिए Postgresql में स्टेटमेंट और बाइंड पैरामीटर कैसे तैयार करें?

  3. #या को दिया गया संबंध संरचनात्मक रूप से संगत होना चाहिए। असंगत मान:[:संदर्भ]

  4. PostgreSQL में UNION कैसे काम करता है

  5. दो कॉलमों को मिलाएं और एक नए कॉलम में जोड़ें