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

trække 2 datetime fra i mysql (en i 24 timers format og en i am/pm format)

Brug STR_TO_DATE() for at konvertere din starttid streng til en MySQL DATETIME :

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

og brug derefter TIMEDIFF() at trække to gange fra:

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 nok overveje at ændre datatypen for starttidspunktet kolonne til DATETIME eller TIMESTAMP . Bemærk også, at dette forudsætter Sluttid er allerede af en sådan datatype, ellers bliver du også nødt til at udføre en lignende konvertering med den.



  1. Annoncering af ClusterControl 1.7.2:Forbedret PostgreSQL backup og support til TimescaleDB &MySQL 8.0

  2. Dvalekriterieforespørgsel for at få specifikke kolonner

  3. Vis avancerede serverkonfigurationsindstillinger i SQL Server (T-SQL)

  4. Forstå indekser i MySQL:Del 1