समस्या:
आप एक MySQL डेटाबेस में डेटाटाइम मान में एक निश्चित समय जोड़ना चाहते हैं।
उदाहरण:
हमारे डेटाबेस में flight_schedule
कॉलम में डेटा के साथ flight
, aircraft
, और arrival_datetime
।
उड़ान | विमान | आगमन_दिनांक समय |
---|---|---|
EK10 | L1201 | 2019-04-20 15:15:00 |
AY12 | K2001 | 2019-03-31 20:10:00 |
LA105 | F205 | 2019-08-03 11:15:00 |
LH30 | K256 | 2019-07-01 12:47:00 |
प्रत्येक उड़ान के लिए, आइए उड़ान कोड, विमान कोड और एक नई आगमन तिथि और समय प्राप्त करें। new_arrival_datetime
की गणना करने के लिए , हम प्रत्येक आगमन के लिए वर्तमान समय में 2 घंटे और 10 मिनट जोड़ देंगे – यानी इन उड़ानों में कितनी देरी हुई है।
समाधान:
हम ADDTIME()
का उपयोग करेंगे समारोह। यहां वह प्रश्न है जो आप लिखेंगे:
SELECT flight, aircraft, ADDTIME(arrival_datetime, ‘2:10’) AS new_arrival_datetime FROM flight_schedule;
ये रहा क्वेरी का नतीजा:
उड़ान | विमान | new_arrival_datetime |
---|---|---|
EK10 | L1201 | 2019-04-20 17:25:00 |
AY12 | K2001 | 2019-03-31 22:20:00 |
LA105 | F205 | 2019-08-03 13:25:00 |
LH30 | K256 | 2019-07-01 14:57:00 |
चर्चा:
यदि आप किसी दिए गए समय को डेटाटाइम/टाइमस्टैम्प/समय मान में जोड़कर एक नया डेटाटाइम चुनना चाहते हैं तो ADDTIME() फ़ंक्शन का उपयोग करें।
यह फ़ंक्शन दो तर्क लेता है। पहला तर्क वह डेटाटाइम/समय है जिसमें हम समय जोड़ रहे हैं; यह एक अभिव्यक्ति हो सकती है जो एक समय/डेटाटाइम/टाइमस्टैम्प मान या समय/डेटाटाइम/टाइमस्टैम्प कॉलम का नाम देता है। हमारे उदाहरण में, हम arrival_datetime
. का उपयोग करते हैं कॉलम, जो डेटाटाइम . का है डेटा प्रकार।
दूसरा तर्क एक स्ट्रिंग है जिसमें पहले तर्क में जोड़ने के लिए समय की मात्रा होती है (हमारे उदाहरण में, '2:10', या 2 घंटे और 10 मिनट)।
आप डेटाटाइम/समय मान में भिन्नात्मक सेकंड और यहां तक कि दिन भी जोड़ सकते हैं। नीचे दी गई क्वेरी दिनांक और समय में 3 दिन, 1 घंटा, 1 मिनट, 1 सेकंड और 111 भिन्न सेकंड जोड़ती है:
SELECT ADDTIME('2019-02-05 10:12:11', '3 1:1:1.111');
यह लौटता है:
2019-02-08 11:13:12.111000
ADDTIME() नए समय के साथ एक स्ट्रिंग देता है। हमारे उदाहरण में, उड़ान के लिए नया आगमन समय ‘EK10’ '2019-04-20 17:25:00' है - इसके मूल दिनांक समय के दो घंटे दस मिनट बाद
‘2019-04-20 15:15:00’.