Sqlserver
 sql >> Baza danych >  >> RDS >> Sqlserver

Kolumna Sum up Time za pomocą zapytania sql

Skrzypce SQL

Konfiguracja schematu 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')
;

Zapytanie 1 :

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

Wyniki :

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

Zapytanie 2 :

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

Wyniki :

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

Zapytanie 3 :

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

Wyniki :

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

Tutaj ostatnie zapytanie zostało zaczerpnięte z odpowiedzi FreeLancers, ponieważ chciałem wiedzieć, czy to działa, czy nie.

Tutaj najpierw musisz przekonwertować różnicę daty i godziny na sekundę lub minutę, a następnie przekonwertować ten czas z powrotem na godzinę.

Mam nadzieję, że to pomoże.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. SQL:Usuń duplikaty

  2. SQL Server:+(jednoargumentowy) operator na ciągach nienumerycznych

  3. Czy mogę używać wielu kursorów na jednym połączeniu z pyodbc i MS SQL Server?

  4. Zaktualizuj kolumnę licznika z danych w innej tabeli

  5. Uzyskaj określony dzień tygodnia w ciągu tygodnia podany przez DATETIME