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

Tính toán chênh lệch thời gian trong MySQL nhưng có tính đến các sự kiện

Đối với mỗi lần bắt đầu, hãy sử dụng một truy vấn để lấy thời gian kết thúc tiếp theo. Sau đó, chỉ cần tính toán sự khác biệt. Logic là một cái gì đó như thế này:

select t.*, timestampdiff(second, dt, next_dt)
from (select t.*, addtime(t.date, t.time) as dt,
             (select addtime(t2.date, t2.time)
              from table t2
              where addtime(t2.date, t2.time) > addtime(t.date, t.time) and
                    status = 'end'
              order by addtime(t2.date, t2.time) desc
              limit 1
             ) as next_dt
      from table t
      where status = 'start'
     ) t

Điều này giả định rằng các cột ngày và giờ của bạn được lưu trữ bằng cách sử dụng các loại cơ sở dữ liệu thích hợp (datetime ). Nếu bạn đang lưu trữ chúng như một thứ khác, bạn sẽ không cần phải phức tạp hóa logic để chuyển đổi chúng sang các định dạng bên trong.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Hiểu key_len của MySQL trong Tuyên bố Giải thích

  2. sử dụng LIKE %% với LEFT JOIN

  3. Làm cách nào để nhập geoDataFrame vào MySQL?

  4. MySQL &PHP - Không phải bảng / bí danh duy nhất

  5. Mysql Chọn hàng thứ hai