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

Thay thế chức năng trễ dẫn trong SQL Server 2008

Trong trường hợp của bạn, id có vẻ như là số, bạn chỉ có thể tự tham gia:

select t.*
from table t join
     table tnext
     on t.id = tnext.id - 1 and
        t.StatusId = 1 and
        tnext.StatusId = 6 and
        datediff(second, t.MinStartTime, tnext.MinStartTime) < 60;

Đây không phải là phút giống nhau. Đó là trong vòng 60 giây. Bạn có thực sự cần cùng một phút thời gian trên lịch không? Nếu vậy, bạn có thể làm:

select t.*
from table t join
     table tnext
     on t.id = tnext.id - 1 and
        t.StatusId = 1 and
        tnext.StatusId = 6 and
        datediff(second, t.MinStartTime, tnext.MinStartTime) < 60 and
        datepart(minute, t.MinStartTime) = datepart(minute, tnext.MinStartTime);


  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 nhanh nhất để cập nhật 120 triệu bản ghi

  2. Cách thiết lập Thư cơ sở dữ liệu trong SQL Server (SSMS)

  3. Trả lại các hàng theo thứ tự chính xác mà chúng đã được chèn

  4. Làm cách nào để chỉ chọn các hàng đầu tiên cho mỗi giá trị duy nhất của một cột?

  5. Lỗi SQL:Cú pháp không chính xác gần từ khóa 'Người dùng'