sql >> Databasteknik >  >> RDS >> Mysql

subtrahera 2 datetime i mysql (en i 24 timmars format och en i am/pm format)

Använd STR_TO_DATE() för att konvertera din starttid sträng till en MySQL DATETIME :

STR_TO_DATE(starttime, '%m-%d-%Y %r')

och använd sedan TIMEDIFF() att subtrahera två gånger:

select ID,NCOde,
  TIMEDIFF(ifnull(EndTime,now()), STR_TO_DATE(starttime, '%m-%d-%Y %r'))
from xxx
where STR_TO_DATE(starttime,'%m-%d-%Y %r')
        between '2012-05-09 00:00:00' and '2012-05-09 23:59:59'

Du bör förmodligen överväga att ändra datatypen för starttid kolumnen till DATETIME eller TIMESTAMP . Observera också att detta förutsätter Sluttid är redan av en sådan datatyp, annars måste du också utföra en liknande konvertering med den också.



  1. Hur får man det senaste kommenterade inlägget ovanför nytt inskickat inlägg i Wordpress?

  2. MySQL Match Fulltext

  3. PHP PDO och MySQLi

  4. Gör en WHERE IN på flera kolumner i Postgresql