sql >> Database teknologi >  >> RDS >> Mysql

MySQL-streng til DATO/TID eller TIDSSTYKKE

Du skal bruge STR_TO_DATE() at konvertere strengen til en dato. Overvej:

select str_to_date(
      'Wed, 18   Oct   2017 10:11:03 GMT',
      '%a, %d %b %Y %T GMT'
 )
 

Udbytter:

2017-10-18 10:11:03
 

Når dine strenge er konverteret til datoer, kan du bruge timestampdiff() at beregne forskellen mellem dem, og vende resultatet tilbage til et tidspunkt ved hjælp af 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
 

Demo på DB Fiddlde :

| 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 |


  1. MySQL multiple insert ydeevne

  2. Hvordan laver jeg en masseindsættelse i mySQL ved hjælp af node.js

  3. SQLiteDatabase android IllegalStateException

  4. Sikkerhedskopiering af database i MySQL ved hjælp af C#