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

Phát hiện khoảng trống hơn 30 phút trong cột dấu thời gian

Giải pháp dễ dàng bằng cách sử dụng biểu thức bảng chung. So sánh với hiệu suất con trỏ nếu bạn có ít nhất 1000 hàng.

create table #tmp (Dt datetime)

insert into #tmp values 
('2015-07-15 15:01:21'),
('2015-07-15 15:17:44'), 
('2015-07-15 15:17:53'), 
('2015-07-15 15:18:34'), 
('2015-07-15 15:21:41'), 
('2015-07-15 15:58:12'), 
('2015-07-15 15:59:12'), 
('2015-07-15 16:05:12'),
('2015-07-15 17:02:12')

;with tbl as (
select dt, row_number() over(order by dt) rn
from #tmp
)
select t1.dt [from],t2.dt [to], datediff(minute,t1.dt,t2.dt) gap
from tbl t1 
inner join tbl t2 on t1.rn+1 = t2.rn
where datediff(minute,t1.dt,t2.dt) >30


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. làm thế nào để hiển thị toàn bộ báo cáo trong một trang duy nhất bằng Trình tạo Báo cáo?

  2. Cách vô hiệu hóa ràng buộc khóa ngoại trong SQL Server (Ví dụ T-SQL)

  3. Sửa lỗi Msg 8116 “Kiểu dữ liệu đối số varchar không hợp lệ cho đối số 1 của hàm session_context” trong SQL Server

  4. Node.js MSSQL tedius ConnectionError:Không kết nối được với localhost:1433 - kết nối ECONNREFUSED

  5. Sử dụng sp_help_schedule trong SQL Server