Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

trừ 2 datetime ở mysql (một ở định dạng 24 giờ và một ở định dạng am / pm)

Sử dụng STR_TO_DATE () để chuyển đổi thời gian bắt đầu của bạn chuỗi vào một MySQL DATETIME :

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

và sau đó sử dụng TIMEDIFF () trừ hai lần:

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'

Bạn có thể nên xem xét việc thay đổi kiểu dữ liệu của starttime cột thành DATETIME hoặc TIMESTAMP . Cũng lưu ý rằng điều này giả định EndTime đã thuộc loại dữ liệu như vậy, nếu không, bạn cũng sẽ phải thực hiện một chuyển đổi tương tự với nó.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Cách nối các chuỗi trong MySQL với CONCAT ()

  2. mysql chỉ tạo chế độ xem nếu nó chưa tồn tại

  3. Làm cách nào để sử dụng một mảng giá trị từ PHP trong mệnh đề 'IN' của truy vấn mysql?

  4. # 1062 - Mục nhập trùng lặp cho khóa 'CHÍNH'

  5. Làm cách nào để tìm kiếm dấu gạch chéo (\) trong MySQL? và tại sao không cần thoát (\) cho where (=) nhưng lại bắt buộc phải Like?