Mysql
 sql >> Baza danych >  >> RDS >> Mysql

odejmij 2 datetime w mysql (jedna w formacie 24-godzinnym i jedna w formacie am/pm)

Użyj STR_TO_DATE() przekonwertować swój czas rozpoczęcia ciąg do MySQL DATETIME :

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

a następnie użyj TIMEDIFF() odjąć dwa razy:

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'

Prawdopodobnie powinieneś rozważyć zmianę typu danych starttime kolumna do DATETIME lub ZNACZNIK CZASU . Zauważ również, że zakłada to EndTime jest już takiego typu danych, w przeciwnym razie będziesz musiał również wykonać z nim podobną konwersję.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Hibernate OnDelete Cascade nie działa dla MySql, ale działa na postgres i Ms-Sql

  2. Użyj relacyjnych baz danych MySQL w Debianie 6 (Squeeze)

  3. Typ MySQL do przechowywania roku:Smallint czy Varchar czy Data?

  4. Jak zezwolić na pusty ciąg dla liczb całkowitych w MySQL?

  5. mysql_query() oczekuje, że parametr 2 będzie zasobem, łańcuch podany w