यूजर-डिफाइंड वेरिएबल और INTERVAL के साथ टाइमस्टैम्प इन्क्रीमेंट
मल्टीपल टाइमस्टैम्प मानों को एक ही मात्रा (सेकंड, मिनट, घंटे, आदि) से इन्क्रीमेंट करने के लिए इन्क्रीमेंट मान को यूजर-डिफाइंड वेरिएबल में स्टोर करें और फिर UPDATE में INTERVAL के साथ उपयोग करें।
सिंटैक्स:
SET @anyVariableName := yourValue; UPDATE yourTableName SET yourColumnName = yourColumnName + INTERVAL (@yourVariableName) SECOND;
आइए पहले एक टेबल बनाते हैं:
mysql> CREATE TABLE DemoTable (
DueDatetime TIMESTAMP
);
रिकॉर्ड्स इन्सर्ट करें:
mysql> INSERT INTO DemoTable VALUES ('2019-01-31 12:30:40');
mysql> INSERT INTO DemoTable VALUES ('2019-09-06 10:00:00');
mysql> INSERT INTO DemoTable VALUES ('2019-09-07 11:10:24');
सभी रिकॉर्ड्स देखें:
mysql> SELECT * FROM DemoTable;
आउटपुट:
+-----------------------+ | DueDatetime | +-----------------------+ | 2019-01-31 12:30:40 | | 2019-09-06 10:00:00 | | 2019-09-07 11:10:24 | +-----------------------+
सभी टाइमस्टैम्प मानों को 12 सेकंड से इन्क्रीमेंट करने के लिए क्वेरी:
mysql> SET @secondValue := 12; mysql> UPDATE DemoTable SET DueDatetime = DueDatetime + INTERVAL (@secondValue) SECOND;
आउटपुट: Query OK, 3 rows affected
टेबल रिकॉर्ड्स फिर से जांचें:
mysql> SELECT * FROM DemoTable;
आउटपुट:
+-----------------------+ | DueDatetime | +-----------------------+ | 2019-01-31 12:30:52 | | 2019-09-06 10:00:12 | | 2019-09-07 11:10:36 | +-----------------------+
व्याख्या:
- SET @secondValue := 12: इन्क्रीमेंट मान (12 सेकंड) वेरिएबल में स्टोर करता है
- INTERVAL (@secondValue) SECOND: वेरिएबल मान को सेकंड इंटरवल के रूप में उपयोग करता है
- DueDatetime + INTERVAL ...: प्रत्येक पंक्ति के टाइमस्टैम्प में 12 सेकंड जोड़ता है
- सभी 3 पंक्तियाँ अपडेट हुईं (Rows matched: 3, Changed: 3)
अन्य समय इकाइयां:
INTERVAL (@var) SECOND -- सेकंड INTERVAL (@var) MINUTE -- मिनट INTERVAL (@var) HOUR -- घंटे INTERVAL (@var) DAY -- दिन INTERVAL (@var) MONTH -- महीने INTERVAL (@var) YEAR -- वर्ष
लाभ: वेरिएबल का उपयोग करने से इन्क्रीमेंट मान एक ही स्थान पर परिभाषित होता है, जिससे रखरखाव आसान होता है और टाइपो से बचा जाता है।