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

Tính tổng cột Thời gian bằng cách sử dụng truy vấn sql

SQL Fiddle

Thiết lập lược đồ MS SQL Server 2008 :

CREATE TABLE Table2
    ([repID] int, [ClockIn] datetime, [ClockOut] datetime, [TotalHours] varchar(7))
;

INSERT INTO Table2
    ([repID], [ClockIn], [ClockOut], [TotalHours])
VALUES
    (109145, '7:50:50 AM', '3:37:16 PM', '7:46:26'),
    (109145, '7:52:41 AM', '3:44:51 PM', '7:52:10'),
    (109145, '8:42:40 AM', '3:46:29 PM', '7:3:49'),
    (109145, '7:50:52 AM', '3:42:59 PM', '7:52:7'),
    (109145, '8:09:23 AM', '3:36:55 PM', '7:27:32')
;

Truy vấn 1 :

SELECT convert(varchar(8), dateadd(second, SUM(DATEDIFF(SECOND, ClockIn, ClockOut)), 0),  108)
from Table2
group by repID

Kết quả :

| COLUMN_0 |
------------
| 14:02:04 |

Truy vấn 2 :

select sum(datediff(second,ClockIn,ClockOut))/3600 as hours_worked
from Table2

Kết quả :

| hours_worked|
------------
|       38 |

Truy vấn 3 :

select sum(datediff(minute, 0, TotalHours)) / 60.0 as hours_worked
from Table2

Kết quả :

| HOURS_WORKED |
----------------
|           38 |

Ở đây, truy vấn cuối cùng đã được lấy từ câu trả lời của FreeLancers vì tôi rất háo hức muốn biết liệu nó có hoạt động hay không.

Ở đây, Đầu tiên, bạn cần chuyển đổi chênh lệch ngày giờ của mình thành giây hoặc phút, sau đó chuyển đổi thời gian đó trở lại giờ.

Hy vọng điều này sẽ hữu ích.



  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ỗi tràn số học (số thành số) với MERGE:Lỗi SQL Server?

  2. Cách sử dụng Tổng, Trung bình và Đếm trong Câu lệnh Chọn - Hướng dẫn SQL Server / TSQL Phần 128

  3. Hiểu kích thước lưu trữ ‘datetimeoffset’ trong SQL Server

  4. Cách bật quyền hàng loạt trong SQL Server

  5. Làm thế nào để viết hàm tổng hợp lượng tử?