MySQL तिथि और समय गाइड: डेटा प्रकार, फ़ंक्शन, फ़ॉर्मेटिंग, और रेंज क्वेरीज़

目次

1. परिचय

MySQL एक व्यापक रूप से उपयोग किया जाने वाला डेटाबेस प्रबंधन प्रणाली है जो वेब अनुप्रयोगों और डेटाबेस बनाने के लिए प्रयोग होती है, और तिथि डेटा को सही ढंग से संभालना विशेष रूप से महत्वपूर्ण है। उदाहरण के लिए, तिथि-संबंधित डेटा कई परिदृश्यों में प्रकट होता है: ब्लॉग पोस्ट का प्रबंधन, उत्पाद बिक्री इतिहास का ट्रैकिंग, और उपयोगकर्ता लॉगिन इतिहास का संग्रह। तिथि डेटा को सही तरीके से प्रबंधित करके, आप डेटा को कुशलता से प्रोसेस कर सकते हैं और उपयोगकर्ताओं को सटीक जानकारी प्रदान कर सकते हैं।

इस गाइड में, हम बुनियादी तिथि/समय डेटा प्रकारों और MySQL में तिथि फ़ंक्शनों के उपयोग से लेकर तिथि-आधारित गणनाओं और रेंज क्वेरीज़ तक सब कुछ व्यापक रूप से समझाएंगे। यह सामग्री शुरुआती से मध्यवर्ती उपयोगकर्ताओं के लिए डिज़ाइन की गई है, और हम वास्तविक‑विश्व उपयोग मामलों पर आधारित व्यावहारिक क्वेरी उदाहरण शामिल करेंगे—जिससे यह दैनिक कार्य में उपयोगी बन सके।

इस लेख को पढ़ने के बाद, आप निम्नलिखित कार्य कर सकेंगे:

  • MySQL तिथि/समय डेटा प्रकारों की विशेषताओं को समझें और अपने डेटा के लिए उपयुक्त प्रकार चुनें।
  • तिथि फ़ंक्शनों का उपयोग करके वर्तमान तिथि, पिछले तिथियों और भविष्य की तिथियों को आसानी से प्राप्त और संशोधित करें।
  • तिथि रेंज खोज और तुलना करके विशिष्ट अवधि के डेटा को निकालें।

अब, अगले अनुभाग से MySQL तिथियों की बुनियादी बातों को देखें।

2. MySQL तिथि/समय डेटा प्रकारों का अवलोकन

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

DATE

DATE प्रकार केवल तिथि (वर्ष, माह, दिन) को संग्रहीत करता है और इसमें समय घटक नहीं होता। समर्थित रेंज “1000-01-01” से “9999-12-31” तक है, इसलिए यह वर्ष 1000 से 9999 तक की तिथियों को संभाल सकता है। यह उन स्थितियों के लिए उपयुक्त है जहाँ केवल तिथि की जानकारी चाहिए और समय प्रासंगिक नहीं है, जैसे जन्मदिन या वर्षगाँठ।

CREATE TABLE users (
    id INT,
    name VARCHAR(50),
    birth_date DATE
);

TIME

TIME प्रकार समय (घंटे, मिनट, सेकंड) को संग्रहीत करता है। समर्थित रेंज “-838:59:59” से “838:59:59” तक है। क्योंकि यह नकारात्मक समय को दर्शा सकता है, इसे समय अंतराल व्यक्त करने के लिए भी उपयोग किया जा सकता है। यह कार्य घंटे या कार्य अवधि रिकॉर्ड करने के लिए उपयोगी है।

CREATE TABLE work_log (
    id INT,
    task_name VARCHAR(50),
    duration TIME
);

DATETIME

DATETIME प्रकार तिथि और समय दोनों को संग्रहीत करता है। समर्थित रेंज “1000-01-01 00:00:00” से “9999-12-31 23:59:59” तक है। यह टाइमज़ोन पर निर्भर नहीं करता, और आप संग्रहीत मान को ठीक उसी रूप में पुनः प्राप्त कर सकते हैं जैसा वह सहेजा गया था। यह पिछले घटनाओं के टाइमस्टैम्प या भविष्य की अनुसूचनाओं को रिकॉर्ड करने के लिए उपयुक्त है।

CREATE TABLE appointments (
    id INT,
    description VARCHAR(50),
    appointment_datetime DATETIME
);

TIMESTAMP

TIMESTAMP प्रकार तिथि और समय को संग्रहीत करता है और सर्वर टाइमज़ोन के आधार पर मानों को स्वचालित रूप से परिवर्तित करता है। समर्थित रेंज “1970-01-01 00:00:01 UTC” से “2038-01-19 03:14:07 UTC” तक है। यह Unix epoch समय के साथ संगत है और टाइमस्टैम्प तथा परिवर्तन इतिहास को रिकॉर्ड करने के लिए उपयुक्त है। साथ ही, TIMESTAMP डिफ़ॉल्ट रूप से वर्तमान समय सेट कर सकता है, जिससे निर्माण और अद्यतन समय को स्वचालित रूप से रिकॉर्ड करना सुविधाजनक हो जाता है।

CREATE TABLE posts (
    id INT,
    title VARCHAR(50),
    created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
    updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
);

YEAR

YEAR प्रकार केवल वर्ष को संग्रहीत करता है। समर्थित रेंज “1901” से “2155” तक है। यह तब उपयोगी होता है जब आप किसी विशिष्ट वर्ष को दर्शाना चाहते हैं, जैसे निर्माण वर्ष या स्थापना वर्ष।

CREATE TABLE products (
    id INT,
    name VARCHAR(50),
    manufactured_year YEAR
);

प्रत्येक तिथि/समय प्रकार की तुलना और उपयोग केस

Data TypeStored ValueRangeTypical Use Cases
DATEYear, month, day1000-01-01 ~ 9999-12-31Birthdays, anniversaries, etc.
TIMEHour, minute, second-838:59:59 ~ 838:59:59Working time, task duration
DATETIMEYear, month, day, hour, minute, second1000-01-01 00:00:00 ~ 9999-12-31 23:59:59Schedules, event timestamps
TIMESTAMPYear, month, day, hour, minute, second1970-01-01 00:00:01 UTC ~ 2038-01-19 03:14:07 UTCCreated/updated times, automatic tracking
YEARYear1901 ~ 2155Manufacturing year, founding year

सारांश

MySQL की तिथि/समय डेटा प्रकारों को आपके डेटा की विशेषताओं और आप इसे कैसे उपयोग करने की योजना बना रहे हैं, के आधार पर चुना जाना चाहिए। अगले भाग में, हम DATETIME और TIMESTAMP के बीच के अंतर को करीब से देखेंगे, जो अक्सर भ्रमित करने वाले होते हैं।

3. DATETIME और TIMESTAMP के बीच अंतर

MySQL में तिथियों और समयों के साथ काम करते समय, DATETIME और TIMESTAMP आमतौर पर उपयोग किए जाते हैं, लेकिन इनके बीच महत्वपूर्ण अंतर होते हैं। दोनों वर्ष, माह, दिन, घंटा, मिनट और सेकंड संग्रहीत करते हैं, लेकिन वे समय क्षेत्रों को संभालने और संग्रहीत किए जा सकने वाले समय रेंज में अलग होते हैं। आपको अपने उपयोग के मामले के आधार पर चुनना चाहिए। इस भाग में, हम DATETIME और TIMESTAMP के अंतर और विशेषताओं को विस्तार से समझाएंगे।

DATETIME की विशेषताएँ

  • समय क्षेत्रों पर निर्भर नहीं : DATETIME प्रकार सर्वर के समय क्षेत्र सेटिंग से प्रभावित नहीं होता। आप संग्रहीत मान को ठीक उसी तरह प्राप्त कर सकते हैं जैसा वह सहेजा गया था।
  • रेंज : यह 1000-01-01 00:00:00 से 9999-12-31 23:59:59 तक के मानों को समर्थन करता है।
  • उपयोग के मामले : उन डेटा के लिए उपयुक्त है जिन्हें आप किसी विशेष समय क्षेत्र पर निर्भर किए बिना संग्रहीत करना चाहते हैं, जैसे ऐतिहासिक घटनाएँ या भविष्य की समय‑सारिणी।

उदाहरण: इवेंट की तिथि/समय संग्रहीत करना

उदाहरण के लिए, यदि आप एक “सार्वभौमिक” तिथि/समय मान को जैसा है वैसा ही रखना चाहते हैं, तो DATETIME एक अच्छा विकल्प है। नीचे दिया गया उदाहरण एक विशिष्ट तिथि और समय पर निर्धारित इवेंट को रिकॉर्ड करता है।

CREATE TABLE events (
    id INT,
    event_name VARCHAR(50),
    event_datetime DATETIME
);

इस तालिका में, event_datetime में संग्रहीत तिथि/समय समय क्षेत्रों से प्रभावित नहीं होता, और मान को ठीक उसी तरह प्राप्त किया जाता है जैसा वह संग्रहीत था।

TIMESTAMP की विशेषताएँ

  • समय क्षेत्रों पर निर्भर : TIMESTAMP प्रकार सर्वर के समय क्षेत्र के आधार पर संग्रहीत और प्राप्त किया जाता है। जब विभिन्न समय क्षेत्रों वाले सर्वरों के बीच डेटा स्थानांतरित किया जाता है, तो उसके अनुसार रूपांतरण होगा।
  • रेंज : यह 1970-01-01 00:00:01 UTC से 2038-01-19 03:14:07 UTC (Unix समय रेंज के आधार पर) तक के मानों को समर्थन करता है।
  • ऑटो‑अपडेट समर्थन : DEFAULT CURRENT_TIMESTAMP और ON UPDATE CURRENT_TIMESTAMP का उपयोग करके, MySQL डेटा डालते या अपडेट करते समय वर्तमान टाइमस्टैम्प को स्वचालित रूप से रिकॉर्ड कर सकता है।
  • उपयोग के मामले : निर्माण या अपडेट समय को स्वचालित रूप से ट्रैक करने के लिए सबसे उपयुक्त, जैसे जब आप चाहते हैं कि रिकॉर्ड अपडेट होने पर टाइमस्टैम्प बदलता रहे।

उदाहरण: पोस्ट के निर्माण और अपडेट समय को संग्रहीत करना

यह उदाहरण TIMESTAMP की ऑटो‑अपडेट सुविधा का उपयोग करके ब्लॉग पोस्ट के निर्माण और अपडेट समय को रिकॉर्ड करता है।

CREATE TABLE blog_posts (
    id INT,
    title VARCHAR(100),
    created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
    updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
);

इस सेटिंग के साथ, created_at पोस्ट के पहली बार बनते समय रिकॉर्ड होता है, और updated_at हर बार पोस्ट संपादित होने पर स्वचालित रूप से अपडेट हो जाता है।

तुलना तालिका: DATETIME बनाम TIMESTAMP

FeatureDATETIMETIMESTAMP
Time zoneNot dependent on server time zoneDependent on server time zone
Range1000-01-01 00:00:00 ~ 9999-12-31 23:59:591970-01-01 00:00:01 UTC ~ 2038-01-19 03:14:07 UTC
Auto-updateNoneSupported via DEFAULT CURRENT_TIMESTAMP, etc.
Typical use casesStore fixed date/time valuesAuto-track created/updated times

कैसे चुनें

  • यदि आप समय क्षेत्र के प्रभाव नहीं चाहते तो DATETIME चुनें : उदाहरण के लिए, यदि आप किसी इवेंट का समय एक विशिष्ट देश/क्षेत्र के लिए स्थिर स्थानीय समय के रूप में संग्रहीत करना चाहते हैं, तो DATETIME उपयुक्त हो सकता है।
  • यदि आपको ऑटो‑अपडेट या समय क्षेत्र प्रबंधन की आवश्यकता है तो TIMESTAMP चुनें : उदाहरण के लिए, यदि आप डेटाबेस पंक्तियों के अपडेट होने पर स्वचालित रूप से रिकॉर्ड करना चाहते हैं, तो TIMESTAMP सुविधाजनक है।

सारांश

DATETIME और TIMESTAMP की विशेषताएँ अलग-अलग हैं। अपने उद्देश्य के अनुसार सही विकल्प चुनकर आप तिथि/समय डेटा को अधिक प्रभावी ढंग से प्रबंधित कर सकते हैं। अगले भाग में, हम MySQL के आवश्यक तिथि फ़ंक्शनों को देखेंगे।

4. MySQL तिथि/समय फ़ंक्शन मूल बातें

MySQL तिथियों और समयों के साथ काम करने के लिए कई फ़ंक्शन प्रदान करता है—वर्तमान तिथि/समय प्राप्त करने से लेकर अंतराल जोड़ने या घटाने तक। ये फ़ंक्शन डेटाबेस प्रशासन और विश्लेषण के लिए उपयोगी हैं। इस भाग में, हम MySQL तिथि/समय फ़ंक्शनों की मूल बातें और उनके सामान्य उपयोग मामलों को समझाएंगे।

वर्तमान तिथि/समय प्राप्त करने के फ़ंक्शन

MySQL में वर्तमान तिथि और समय प्राप्त करने के लिए तीन सामान्य फ़ंक्शन NOW(), CURDATE(), और CURTIME() हैं।

NOW()

NOW() फ़ंक्शन वर्तमान तिथि और समय को YYYY-MM-DD HH:MM:SS फ़ॉर्मेट में लौटाता है। यह लॉगिंग और रिकॉर्ड्स को टाइमस्टैम्प करने में उपयोगी है।

SELECT NOW(); -- Get the current date and time

CURDATE()

CURDATE() फ़ंक्शन वर्तमान तिथि को YYYY-MM-DD फ़ॉर्मेट में लौटाता है। इसमें समय शामिल नहीं होता, इसलिए जब आपको केवल तिथि चाहिए तब यह उपयुक्त है।

SELECT CURDATE(); -- Get the current date

CURTIME()

CURTIME() फ़ंक्शन वर्तमान समय को HH:MM:SS फ़ॉर्मेट में लौटाता है। जब आपको केवल समय चाहिए और तिथि नहीं, तब इसका उपयोग करें।

SELECT CURTIME(); -- Get the current time

Functions to Add/Subtract Dates

किसी तिथि से अंतराल जोड़ने या घटाने के लिए, DATE_ADD() और DATE_SUB() का उपयोग करें। ये फ़ंक्शन भविष्य या अतीत की तिथियों की गणना को आसान बनाते हैं।

DATE_ADD()

DATE_ADD() फ़ंक्शन किसी तिथि में निर्दिष्ट अंतराल जोड़ता है। उदाहरण के लिए, यह 7 दिन बाद या 1 महीने बाद की तिथि प्राप्त करने में उपयोगी है।

SELECT DATE_ADD('2023-01-01', INTERVAL 7 DAY); -- Returns 2023-01-08

DATE_SUB()

DATE_SUB() फ़ंक्शन किसी तिथि से निर्दिष्ट अंतराल घटाता है। अतीत की तिथियों की गणना करने के लिए इसका उपयोग करें।

SELECT DATE_SUB('2023-01-01', INTERVAL 1 MONTH); -- Returns 2022-12-01

Function to Calculate Date Differences

दो तिथियों के बीच अंतर की गणना करने के लिए, DATEDIFF() सुविधाजनक है। उदाहरण के लिए, आप किसी विशिष्ट तिथि से अब तक कितने दिन बीते हैं, या दो तिथियों के बीच कितने दिन हैं, यह गणना कर सकते हैं।

DATEDIFF()

DATEDIFF() फ़ंक्शन दो तिथियों के बीच अंतर को दिनों में लौटाता है। जब आप प्रारंभ तिथि से समाप्ति तिथि तक के दिनों की संख्या की पुष्टि करना चाहते हैं, तब यह उपयोगी है।

SELECT DATEDIFF('2023-01-10', '2023-01-01'); -- Returns 9

Other Useful Date Functions

MySQL अतिरिक्त उपयोगी तिथि फ़ंक्शन प्रदान करता है।

EXTRACT()

EXTRACT() फ़ंक्शन तिथि से एक विशिष्ट भाग (वर्ष, महीना, दिन, आदि) निकालता है। जब आपको तिथि का केवल एक हिस्सा चाहिए, तब यह उपयोगी है।

SELECT EXTRACT(YEAR FROM '2023-01-01'); -- Extract year (2023)
SELECT EXTRACT(MONTH FROM '2023-01-01'); -- Extract month (1)
SELECT EXTRACT(DAY FROM '2023-01-01'); -- Extract day (1)

DATE_FORMAT()

DATE_FORMAT() फ़ंक्शन तिथि को निर्दिष्ट फ़ॉर्मेट में प्रदर्शित करता है। जब आप तिथियों को किसी विशेष फ़ॉर्मेट में दिखाना चाहते हैं (उदाहरण के लिए, जापानी शैली का फ़ॉर्मेट), तब यह उपयोगी है।

SELECT DATE_FORMAT('2023-01-01', '%Y-%m-%d'); -- Returns 2023-01-01

5. Date Formatting and Conversion Methods

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

DATE_FORMAT() फ़ंक्शन के साथ तिथि फ़ॉर्मेटिंग

DATE_FORMAT() का उपयोग करके, आप तिथि मानों को निर्दिष्ट फ़ॉर्मेट में प्रदर्शित कर सकते हैं। यह विशेष रूप से उपयोगी है जब आपको मानक फ़ॉर्मेट के अलावा कोई अन्य प्रदर्शनी फ़ॉर्मेट चाहिए, जैसे कि जापानी “YYYY年MM月DD日” फ़ॉर्मेट।

फ़ॉर्मेट विकल्प

DATE_FORMAT() के साथ, आप निम्नलिखित फ़ॉर्मेट विकल्पों का उपयोग कर सकते हैं:

  • %Y : 4-अंकीय वर्ष
  • %y : 2-अंकीय वर्ष
  • %m : 2-अंकीय महीना (01–12)
  • %d : 2-अंकीय दिन (01–31)
  • %H : 2-अंकीय घंटा (00–23)
  • %i : 2-अंकीय मिनट (00–59)
  • %s : 2-अंकीय सेकंड (00–59)

उदाहरण उपयोग

उदाहरण के लिए, तिथि 2023-01-01 को “2023年01月01日” के रूप में प्रदर्शित करने के लिए, आप निम्न लिख सकते हैं:

SELECT DATE_FORMAT('2023-01-01', '%Y年%m月%d日'); -- Returns 2023年01月01日

आप तिथि और समय को स्लैश के साथ भी प्रदर्शित कर सकते हैं, जैसे “2023/01/01 12:30:45।”

SELECT DATE_FORMAT('2023-01-01 12:30:45', '%Y/%m/%d %H:%i:%s'); -- Returns 2023/01/01 12:30:45

STR_TO_DATE() के साथ स्ट्रिंग्स को डेट में बदलना

STR_TO_DATE() फ़ंक्शन एक डेट स्ट्रिंग को MySQL डेट टाइप में बदलता है। उदाहरण के लिए, जब आप “2023年01月01日” जैसी स्ट्रिंग को DATE वैल्यू के रूप में उपयोग करना चाहते हैं, तब यह उपयोगी होता है।

उदाहरण उपयोग

“2023-01-01” स्ट्रिंग को DATE वैल्यू में बदलने के लिए, नीचे दिया गया कोड लिखें:

SELECT STR_TO_DATE('2023-01-01', '%Y-%m-%d'); -- Returns 2023-01-01 as a DATE

जापानी शैली की स्ट्रिंग जैसे “2023年01月01日” को डेट में बदलने के लिए, उपयुक्त फ़ॉर्मेट निर्दिष्ट करें:

SELECT STR_TO_DATE('2023年01月01日', '%Y年%m月%d日'); -- Returns 2023-01-01 as a DATE

विभिन्न फ़ॉर्मेट से डेट बदलने के उदाहरण

वास्तविक उपयोग में डेट इनपुट फ़ॉर्मेट अलग‑अलग हो सकते हैं, इसलिए आपको विभिन्न फ़ॉर्मेट से बदलना पड़ सकता है। नीचे कुछ उदाहरण दिए गए हैं।

  1. “YYYY/MM/DD” को DATE वैल्यू में बदलें
    SELECT STR_TO_DATE('2023/01/01', '%Y/%m/%d'); -- Returns 2023-01-01 as a DATE
    
  1. “MM-DD-YYYY” को DATE वैल्यू में बदलें
    SELECT STR_TO_DATE('01-01-2023', '%m-%d-%Y'); -- Returns 2023-01-01 as a DATE
    

इस तरह, चाहे डेटा विभिन्न फ़ॉर्मेट में दर्ज किया गया हो, आप इसे एकीकृत डेट फ़ॉर्मेट में संग्रहीत और प्रबंधित कर सकते हैं।

DATE_FORMAT और STR_TO_DATE के बीच अंतर, और कब उपयोग करें

  • DATE_FORMAT() : मौजूदा डेट वैल्यू के प्रदर्शित फ़ॉर्मेट को बदलने के लिए उपयोग किया जाता है। चूँकि यह परिवर्तन केवल डिस्प्ले को प्रभावित करता है, इसलिए संग्रहीत डेटा स्वयं नहीं बदलता।
  • STR_TO_DATE() : डेट स्ट्रिंग को MySQL DATE या DATETIME वैल्यू में बदलने के लिए उपयोग किया जाता है। यह संग्रहीत डेटा टाइप को बदलता है और अन्य MySQL फ़ंक्शन व क्वेरीज़ के साथ डेट को प्रोसेस करना आसान बनाता है।

सारांश

DATE_FORMAT() और STR_TO_DATE() का उपयोग करके आप डेट डेटा के प्रदर्शित और संग्रहीत रूप को लचीले ढंग से प्रबंधित कर सकते हैं। इससे उपयोगकर्ता या सिस्टम इनपुट को अधिक लचीले तरीके से संभालना संभव होता है, जबकि डेट प्रबंधन सुसंगत रहता है। अगले भाग में हम डेट गणनाओं और तुलना के बारे में बताएँगे, तथा डेट डेटा का उपयोग करके अवधि की गणना और तुलना कैसे की जाती है, इस पर गहराई से चर्चा करेंगे।

6. डेट गणनाएँ और तुलना

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

डेट अंतर की गणना करने वाला फ़ंक्शन: DATEDIFF()

DATEDIFF() फ़ंक्शन दो डेट्स के बीच “दिन” में अंतर लौटाता है। यह तब उपयोगी होता है जब आप डेट्स के बीच बीते दिनों की जाँच करना चाहते हैं या किसी पिछले इवेंट से आज तक कितने दिन बीते हैं, यह पता करना चाहते हैं।

उदाहरण उपयोग

उदाहरण के लिए, 1 जनवरी 2023 से 10 जनवरी 2023 तक के दिनों की संख्या निकालने के लिए, नीचे दिया गया कोड लिखें:

SELECT DATEDIFF('2023-01-10', '2023-01-01'); -- Returns 9

इस उदाहरण में, प्रारंभिक डेट से समाप्ति डेट तक का अंतर 9 दिन है, इसलिए परिणाम 9 है।

यूनिट के आधार पर अंतर की गणना: TIMESTAMPDIFF()

TIMESTAMPDIFF() फ़ंक्शन दो डेट या डेटटाइम के बीच निर्दिष्ट यूनिट (वर्ष, माह, दिन, घंटा, मिनट, सेकंड) में अंतर की गणना करता है। उदाहरण के लिए, आप आवश्यकता अनुसार “माह” या “घंटे” में अंतर निकाल सकते हैं।

उदाहरण उपयोग

  1. माह में अंतर निकालें
    SELECT TIMESTAMPDIFF(MONTH, '2022-01-01', '2023-01-01'); -- Returns 12
    
  1. घंटे में अंतर निकालें
    SELECT TIMESTAMPDIFF(HOUR, '2023-01-01 00:00:00', '2023-01-02 12:00:00'); -- Returns 36
    

डेट तुलना

डेट तुलना MySQL के मानक तुलना ऑपरेटर (<, >, <=, >=, =) का उपयोग करके की जाती है। इससे आप किसी विशिष्ट अवधि के भीतर डेटा निकाल सकते हैं या पिछले/भविष्य के डेट को शर्त के रूप में शामिल कर सकते हैं।

उदाहरण उपयोग

उदाहरण के लिए, “1 जनवरी 2023 या उसके बाद” के डेटा को निकालने के लिए, नीचे दिया गया कोड लिखें:

SELECT * FROM events WHERE event_date >= '2023-01-01';

BETWEEN के साथ रेंज निर्दिष्ट करना

BETWEEN ऑपरेटर आपको डेटा पुनः प्राप्त करने के लिए एक तिथि सीमा निर्दिष्ट करने देता है। यह तब उपयोगी होता है जब आप किसी विशिष्ट अवधि के भीतर आने वाले रिकॉर्ड निकालना चाहते हैं।

उदाहरण उपयोग

उदाहरण के लिए, 1 जनवरी 2023 से 31 जनवरी 2023 तक का डेटा प्राप्त करने के लिए, निम्नलिखित लिखें:

SELECT * FROM events WHERE event_date BETWEEN '2023-01-01' AND '2023-01-31';

ADDDATE() और SUBDATE() के साथ तिथि गणनाएँ

आप ADDDATE() और SUBDATE() का उपयोग करके किसी तिथि में दिनों की संख्या जोड़ या घटा सकते हैं। ये भविष्य या अतीत की तिथियों की गणना करने में सुविधाजनक होते हैं।

उदाहरण उपयोग

  1. एक तिथि में 10 दिन जोड़ें
    SELECT ADDDATE('2023-01-01', 10); -- Returns 2023-01-11
    
  1. एक तिथि से 10 दिन घटाएँ
    SELECT SUBDATE('2023-01-01', 10); -- Returns 2022-12-22
    

सारांश

MySQL की तिथि गणना और तुलना सुविधाओं का उपयोग करके, आप विशिष्ट अवधियों के लिए डेटा को कुशलतापूर्वक निकाल सकते हैं और समय सीमा के अनुसार डेटा का विश्लेषण कर सकते हैं। अगले भाग में, हम “तिथि सीमा खोज” के अधिक उन्नत विषय को करीब से देखेंगे।