क्या कोई ऐसा तरीका है जिससे मैं MySQL में एक क्वेरी बना सकता हूं जो मुझे सेकंड में दो टाइमस्टैम्प के बीच का अंतर देगा, या मुझे PHP में ऐसा करने की आवश्यकता होगी? और यदि हां, तो मैं ऐसा करने के बारे में कैसे जाऊंगा?
क्या कोई ऐसा तरीका है जिससे मैं MySQL में एक क्वेरी बना सकता हूं जो मुझे सेकंड में दो टाइमस्टैम्प के बीच का अंतर देगा, या मुझे PHP में ऐसा करने की आवश्यकता होगी? और यदि हां, तो मैं ऐसा करने के बारे में कैसे जाऊंगा?
जवाबों:
आप निम्नानुसार TIMEDIFF()
और TIME_TO_SEC()
कार्यों का उपयोग कर सकते हैं :
SELECT TIME_TO_SEC(TIMEDIFF('2010-08-20 12:01:00', '2010-08-20 12:00:00')) diff;
+------+
| diff |
+------+
| 60 |
+------+
1 row in set (0.00 sec)
आप UNIX_TIMESTAMP()
फ़ंक्शन का उपयोग किसी अन्य उत्तर में सुझाए गए @Amber के रूप में भी कर सकते हैं :
SELECT UNIX_TIMESTAMP('2010-08-20 12:01:00') -
UNIX_TIMESTAMP('2010-08-20 12:00:00') diff;
+------+
| diff |
+------+
| 60 |
+------+
1 row in set (0.00 sec)
यदि आप TIMESTAMP
डेटा प्रकार का उपयोग कर रहे हैं , तो मुझे लगता है कि UNIX_TIMESTAMP()
समाधान थोड़ा तेज होगा, क्योंकि TIMESTAMP
मान पहले से ही एक पूर्णांक के रूप में संग्रहीत हैं जो कि युग ( स्रोत ) के बाद से सेकंड की संख्या का प्रतिनिधित्व करते हैं । डॉक्स का हवाला देते हुए :
जब
UNIX_TIMESTAMP()
किसीTIMESTAMP
स्तंभ पर उपयोग किया जाता है , तो फ़ंक्शन सीधे आंतरिक टाइमस्टैम्प मान वापस करता है, जिसका कोई निहित "स्ट्रिंग-टू-यूनिक्स-टाइमस्टैम्प" रूपांतरण नहीं है।ध्यान रखें कि
TIMEDIFF()
डेटा प्रकार वापस करेंTIME
।TIME
मान '-838: 59: 59' से लेकर '838: 59: 59' तक हो सकते हैं (लगभग 34.96 दिन)
कैसे "TIMESTAMPDIFF" के बारे में:
SELECT TIMESTAMPDIFF(SECOND,'2009-05-18','2009-07-29') from `post_statistics`
https://dev.mysql.com/doc/refman/5.7/en/date-and-time-functions.html#function_timestampdiff
str_to_date(date_column, '%m/%d/%Y')
स्तंभ के लिए TIMESTAMPDIFF फ़ंक्शन के भीतर जिसे इसे सही करने की आवश्यकता है।
TIME_TO_SEC
अधिकतम 3020399
मूल्य पर है जबकि यह सही मूल्य देता है।
ध्यान दें कि TIMEDIFF()
समाधान केवल काम करता है जब datetimes
कर रहे हैं की तुलना में कम 35 दिनों के अलावा!
TIMEDIFF()
एक TIME
डेटा स्वरूप देता है , और TIME का अधिकतम मूल्य 838: 59: 59 घंटे (= 34,96 दिन) है
unit
पैरामीटर को सेट करेंSECOND
।