sql >> Database >  >> RDS >> Mysql

trek 2 datetime af in mysql (één in 24-uurs formaat en één in am/pm formaat)

Gebruik STR_TO_DATE() om je starttime te converteren string naar een MySQL DATETIME :

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

en gebruik dan TIMEDIFF() twee keer aftrekken:

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'

U zou waarschijnlijk moeten overwegen om het gegevenstype van de starttime . te wijzigen kolom naar DATETIME of TIMESTAMP . Merk ook op dat dit veronderstelt EndTime is al van een dergelijk gegevenstype, anders moet u er ook een vergelijkbare conversie mee uitvoeren.



  1. Islands T-SQL-uitdaging

  2. Databasestructuur voor categorie met meerdere niveaus (Best Approach)

  3. Ruby:mysql2-Gem werkt niet (Mac OS X Snow Leopard, Ruby 1.9.2)

  4. Kolom bestaat niet?