आपको चाहिए STR_TO_DATE()
स्ट्रिंग को एक तिथि में बदलने के लिए। विचार करें:
select str_to_date(
'Wed, 18 Oct 2017 10:11:03 GMT',
'%a, %d %b %Y %T GMT'
)
पैदावार:
2017-10-18 10:11:03
एक बार जब आप तार तारीखों में बदल जाते हैं, तो आप timestampdiff()
. का उपयोग कर सकते हैं उनके बीच अंतर की गणना करने के लिए, और sec_to_time()
का उपयोग करके परिणाम को वापस एक समय में बदल दें :
select
person,
taskID,
sec_to_time(
timestampdiff(
second,
str_to_date(Start_time, '%a, %d %b %Y %T GMT'),
str_to_date(End_time, '%a, %d %b %Y %T GMT')
)
) time_on_task
from mytable
| person | taskID | time_on_task |
| ------ | ------ | ------------ |
| Alpha | 1 | 00:00:33 |
| Alpha | 2 | 00:00:12 |
| Beta | 1 | 00:00:46 |
| Alpha | 3 | 00:01:10 |
| Gamma | 1 | 03:03:42 |
| Beta | 2 | 00:00:23 |