SET कमांड के साथ यूजर-डिफाइंड वेरिएबल का उपयोग करें
MySQL में स्थानीय वेरिएबल (DECLARE) केवल स्टोर्ड प्रोग्राम (प्रोसीजर/फंक्शन/ट्रिगर) के अंदर अनुमत हैं। सेशन स्तर पर डेटाटाइम मान रखने के लिए यूजर-डिफाइंड वेरिएबल (@var) का उपयोग करें।
सिंटैक्स
SET @anyVariableName = 'yourDatetimeValue';
व्यावहारिक उदाहरण
टेबल बनाना
mysql> CREATE TABLE datetimeVariables (
Id INT NOT NULL AUTO_INCREMENT,
Name VARCHAR(10),
ArrivalDatetime DATETIME,
PRIMARY KEY(Id)
);
डेटा डालना
mysql> INSERT INTO datetimeVariables(Name, ArrivalDatetime) VALUES('John', '2011-01-31 13:45:20');
mysql> INSERT INTO datetimeVariables(Name, ArrivalDatetime) VALUES('Sam', '2012-04-25 15:30:25');
mysql> INSERT INTO datetimeVariables(Name, ArrivalDatetime) VALUES('Larry', '2013-10-04 16:40:30');
mysql> INSERT INTO datetimeVariables(Name, ArrivalDatetime) VALUES('Bob', '2014-05-15 10:30:25');
mysql> INSERT INTO datetimeVariables(Name, ArrivalDatetime) VALUES('Mike', '2017-08-13 11:30:25');
mysql> INSERT INTO datetimeVariables(Name, ArrivalDatetime) VALUES('David', '2018-04-25 09:30:25');
सभी रिकॉर्ड
+----+-------+---------------------+ | Id | Name | ArrivalDatetime | +----+-------+---------------------+ | 1 | John | 2011-01-31 13:45:20 | | 2 | Sam | 2012-04-25 15:30:25 | | 3 | Larry | 2013-10-04 16:40:30 | | 4 | Bob | 2014-05-15 10:30:25 | | 5 | Mike | 2017-08-13 11:30:25 | | 6 | David | 2018-04-25 09:30:25 | +----+---------------------+
डेटाटाइम वेरिएबल घोषित करना और उपयोग करना
वेरिएबल सेट करना
mysql> SET @greaterThan2011Datetime = '2012-04-25 15:30:25';
क्वेरी में उपयोग करना
mysql> SELECT * FROM datetimeVariables WHERE ArrivalDatetime >= @greaterThan2011Datetime;
आउटपुट
+----+-------+---------------------+ | Id | Name | ArrivalDatetime | +----+-------+---------------------+ | 2 | Sam | 2012-04-25 15:30:25 | | 3 | Larry | 2013-10-04 16:40:30 | | 4 | Bob | 2014-05-15 10:30:25 | | 5 | Mike | 2017-08-13 11:30:25 | | 6 | David | 2018-04-25 09:30:25 | +----+---------------------+
महत्वपूर्ण नोट्स
@variableसेशन-विशिष्ट होते हैं; कनेक्शन बंद होने पर नष्ट हो जाते हैं।- डेटाटाइम स्ट्रिंग फॉर्मेट:
'YYYY-MM-DD HH:MM:SS'या'YYYY-MM-DD'। - स्टोर्ड प्रोसीजर के अंदर
DECLARE var DATETIME;उपयोग करें (फिरSET var = '...')। SET @var = NOW()वर्तमान टाइमस्टैम्प सेट करता है।
तुलना
| प्रकार | दायरा | घोषणा | उपयोग |
|---|---|---|---|
यूजर-डिफाइंड (@var) | सेशन | SET @var = ... | तदर्थ क्वेरी, सेशन स्थिति |
लोकल (DECLARE) | BEGIN...END ब्लॉक | DECLARE var TYPE; | स्टोर्ड प्रोसीजर/फंक्शन/ट्रिगर |
सिस्टम (@@var) | ग्लोबल/सेशन | प्रीडिफाइंड | सर्वर कॉन्फ़िगरेशन |