हम किसी दिए गए महीने के पहले दिन को वापस करने के लिए PostgreSQL में निम्न विधि का उपयोग कर सकते हैं।
यह चालू माह का पहला दिन हो सकता है, या हमारे द्वारा निर्दिष्ट तिथि के आधार पर महीने का पहला दिन हो सकता है।
महीने का पहला दिन प्राप्त करने से हम परिणामी तारीख पर आगे की गणना कर सकते हैं, जैसे महीने की शुरुआत में कुछ निश्चित दिन जोड़ना, आदि।
चालू माह की शुरुआत
यहां एक उदाहरण दिया गया है जो चालू माह का पहला दिन लौटाता है:
SELECT date_trunc('month', now());
परिणाम:
2022-04-01 00:00:00+10
यह PostgreSQL के date_trunc()
. का उपयोग करता है हम जो परिणाम चाहते हैं उसे वापस करने के लिए कार्य करते हैं। यह फ़ंक्शन दिनांक/समय मान को एक निर्दिष्ट परिशुद्धता के लिए छोटा करता है।
इस मामले में मैं now()
. का उपयोग करता हूं वर्तमान तिथि, और 'month'
. को वापस करने के लिए कार्य करता है तर्क उस तारीख को महीने की शुरुआत में बदल देता है।
यदि आवश्यक हो तो हम इसे दिनांक मान में डाल सकते हैं:
SELECT date_trunc('month', now())::date;
परिणाम:
2022-04-01
यहाँ यह फिर से है, वास्तविक तिथि के साथ कि मैंने उदाहरण चलाया:
SELECT
now()::date AS "Current Date",
date_trunc('month', now())::date AS "Start of Month";
परिणाम:
+--------------+----------------+ | Current Date | Start of Month | +--------------+----------------+ | 2022-04-09 | 2022-04-01 | +--------------+----------------+
एक निर्दिष्ट महीने की शुरुआत
यह चालू माह की शुरुआत नहीं होनी चाहिए। हम किसी भी तारीख को निर्दिष्ट कर सकते हैं, और यह उस तारीख के आधार पर महीने की शुरुआत लौटाएगा।
उदाहरण:
SELECT date_trunc('month', date '2030-07-14')::date;
परिणाम:
2030-07-01
फिर हम परिणाम का उपयोग उस पर अन्य क्रियाएं करने के लिए कर सकते हैं। उदाहरण के लिए, हम दिए गए दिनों को इस तरह परिणाम में जोड़ सकते हैं:
SELECT date_trunc('month', date '2030-07-14')::date + 20;
परिणाम:
2030-07-21
डेटाबेस उदाहरण
यहां एक उदाहरण दिया गया है जो डेटाबेस से तिथियों का उपयोग करता है:
SELECT
rental_date,
date_trunc('month', rental_date)::date AS "The 1st of the Month",
date_trunc('month', rental_date)::date + 19 AS "The 20th of the Month"
FROM rental WHERE customer_id = 459 LIMIT 10;
परिणाम:
+---------------------+----------------------+-----------------------+ | rental_date | The 1st of the Month | The 20th of the Month | +---------------------+----------------------+-----------------------+ | 2005-05-24 22:54:33 | 2005-05-01 | 2005-05-20 | | 2005-06-17 02:50:51 | 2005-06-01 | 2005-06-20 | | 2005-06-17 09:38:22 | 2005-06-01 | 2005-06-20 | | 2005-06-17 16:40:33 | 2005-06-01 | 2005-06-20 | | 2005-06-20 02:39:21 | 2005-06-01 | 2005-06-20 | | 2005-06-20 12:35:44 | 2005-06-01 | 2005-06-20 | | 2005-06-20 12:42:00 | 2005-06-01 | 2005-06-20 | | 2005-06-21 02:39:44 | 2005-06-01 | 2005-06-20 | | 2005-07-06 00:22:29 | 2005-07-01 | 2005-07-20 | | 2005-07-08 02:51:23 | 2005-07-01 | 2005-07-20 | +---------------------+----------------------+-----------------------+