1. MySQL NOW() फ़ंक्शन का अवलोकन
MySQL NOW() फ़ंक्शन का उपयोग डेटाबेस के भीतर वर्तमान तिथि और समय को आसानी से प्राप्त करने के लिए किया जाता है। NOW() का उपयोग करके आप टाइमस्टैम्प जानकारी प्राप्त कर सकते हैं जो डेटा इन्सर्शन या लॉगिंग के लिए उपयोगी होती है। इसकी सरलता के बावजूद, यह एक शक्तिशाली उपकरण है जिसका व्यापक रूप से प्रयोग किया जाता है।
NOW() की मूल सिंटैक्स
NOW() फ़ंक्शन की सिंटैक्स बहुत सीधी है। निम्नलिखित क्वेरी वर्तमान तिथि और समय को प्राप्त करती है:
SELECT NOW();
परिणाम YYYY-MM-DD HH:MM:SS प्रारूप में लौटाया जाता है। उदाहरण के लिए, यदि तिथि और समय 24 अक्टूबर, 2024 को 16:30 है, तो परिणाम इस प्रकार होगा:
2024-10-24 16:30:00
इसके अतिरिक्त, NOW() फ़ंक्शन डेटाबेस के टाइम ज़ोन के आधार पर वर्तमान तिथि और समय लौटाता है। यह पूरे सिस्टम में समय प्रबंधन को सुसंगत बनाता है।
NOW() के उपयोग के मामले
NOW() फ़ंक्शन विशेष रूप से निम्नलिखित परिदृश्यों में उपयोगी है:
- लॉगिंग : डेटा संशोधनों या इन्सर्शन के समय को स्वचालित रूप से रिकॉर्ड करना।
- टाइमस्टैम्प : उपयोगकर्ता क्रियाओं के समय को ट्रैक करना।
- समय-आधारित फ़िल्टरिंग : किसी विशिष्ट अवधि के भीतर हुए डेटा को निकालना।

2. NOW() के बुनियादी उदाहरण
आइए NOW() फ़ंक्शन के साथ वर्तमान तिथि और समय प्राप्त करने का एक बुनियादी उदाहरण देखें:
SELECT NOW();
यह क्वेरी वर्तमान तिथि और समय लौटाती है। स्ट्रिंग फ़ॉर्मेट के अलावा, आप परिणाम को संख्यात्मक फ़ॉर्मेट में भी प्राप्त कर सकते हैं। निम्नलिखित क्वेरी का उपयोग करके, तिथि और समय संख्यात्मक फ़ॉर्मेट (YYYYMMDDHHMMSS) में लौटाया जाता है:
SELECT NOW() + 0;
उदाहरण के लिए, परिणाम 20241024163000 के रूप में लौटाया जा सकता है, जो संख्यात्मक फ़ॉर्मेट में डेटा को संभालते समय उपयोगी होता है।
फ्रैक्शनल सेकंड प्रिसीजन निर्दिष्ट करना
NOW() फ़ंक्शन आपको फ्रैक्शनल सेकंड प्रिसीजन निर्दिष्ट करने की अनुमति देता है। आप इसे एक आर्ग्यूमेंट के रूप में सेट कर सकते हैं:
SELECT NOW(3);
यह क्वेरी तीन अंकों की फ्रैक्शनल सेकंड प्रिसीजन के साथ परिणाम लौटाती है, जैसे 2024-10-24 16:30:00.123। यह सुविधा उन सिस्टमों में विशेष रूप से उपयोगी है जिन्हें सब-सेकंड सटीकता की आवश्यकता होती है।
3. SYSDATE() और NOW() के बीच अंतर
NOW() के समान एक और फ़ंक्शन SYSDATE() है, लेकिन उनका व्यवहार थोड़ा अलग होता है:
- NOW() : क्वेरी निष्पादन के समय का समय प्राप्त करता है और पूरे स्टेटमेंट में वही समय रखता है। भले ही ट्रांज़ैक्शन लंबे समय तक चले, यह वही परिणाम लौटाता है।
- SYSDATE() : क्वेरी के प्रत्येक चरण पर वर्तमान समय प्राप्त करता है। इसका मतलब है कि लंबी अवधि के ट्रांज़ैक्शन के दौरान यह वास्तविक समय के टाइमस्टैम्प प्रदान करता है।
उदाहरण के लिए, लंबी अवधि के बैच प्रोसेस में SYSDATE() अधिक सटीक परिणाम देता है, जबकि NOW() तब पसंद किया जाता है जब ट्रांज़ैक्शन की स्थिरता आवश्यक हो।
क्वेरी के भीतर अंतर का उदाहरण
यहाँ एक उदाहरण क्वेरी है जो SYSDATE() और NOW() के बीच अंतर दर्शाती है:
SELECT NOW(), SYSDATE();
परिणाम इस प्रकार दिख सकते हैं:
NOW(): 2024-10-24 16:30:00
SYSDATE(): 2024-10-24 16:30:01
SYSDATE() निष्पादन के समय वास्तविक अंतर को दर्शाता है, जबकि NOW() क्वेरी की शुरुआत से टाइमस्टैम्प को संरक्षित रखता है। सही फ़ंक्शन का चयन आपके उपयोग के मामले पर निर्भर करता है।

4. NOW() के व्यावहारिक उपयोग के मामले
NOW() फ़ंक्शन विशिष्ट परिदृश्यों में अत्यधिक उपयोगी है। उदाहरण के लिए, डेटा के इन्सर्शन समय को स्वचालित रूप से रिकॉर्ड करने के लिए:
INSERT INTO users (username, created_at)
VALUES ('example_user', NOW());
यह रिकॉर्ड इन्सर्ट होते ही created_at कॉलम में वर्तमान समय को स्वचालित रूप से सहेजता है। यह विशेष रूप से लॉगिंग या इवेंट ट्रैकिंग के लिए मूल्यवान है।
पिछले 7 दिनों में बनाए गए डेटा को निकालने के लिए, आप NOW() का इस प्रकार उपयोग कर सकते हैं:
SELECT * FROM orders
WHERE order_date >= NOW() - INTERVAL 7 DAY;
यह क्वेरी वर्तमान समय के सापेक्ष पिछले 7 दिनों में बनाए गए सभी रिकॉर्ड को प्राप्त करती है। समय-निर्भर डेटा निष्कर्षण के लिए NOW() अत्यंत प्रभावी है।
5. NOW() का उपयोग करते समय विचारणीय बातें
NOW() का उपयोग करते समय कुछ महत्वपूर्ण विचारणीय बातें हैं। विशेष रूप से, यह ट्रांजेक्शन की स्थिरता को प्रभावित कर सकता है, इसलिए आपको इसके उपयोग के संदर्भ का ध्यान रखना चाहिए।
- ट्रांजेक्शनों के भीतर व्यवहार : NOW() फंक्शन एक ट्रांजेक्शन के भीतर सुसंगत परिणाम लौटाता है, जो लंबे समय चलने वाली प्रक्रियाओं में भी एक ही समय सुनिश्चित करता है। यह डेटा की अखंडता बनाए रखने के लिए महत्वपूर्ण है। हालांकि, यदि आपको वास्तविक समय के टाइमस्टैम्प की आवश्यकता है, तो SYSDATE() अधिक उपयुक्त है।
यह भी ध्यान दें कि NOW() फंक्शन सिस्टम के समय क्षेत्र पर निर्भर करता है, जिसका अर्थ है कि परिणाम सेटिंग्स के आधार पर भिन्न हो सकते हैं। वैश्विक अनुप्रयोगों के लिए, इस कारक को डिज़ाइन के दौरान सावधानीपूर्वक विचार करना चाहिए।


