sql >> Database >  >> RDS >> Sqlserver

Hoe het tijdveld in SQL Server samen te vatten?

SELECT EmployeeID, minutes_worked = SUM(DATEDIFF(MINUTE, '0:00:00', WrkHrs)) 
FROM dbo.table 
-- WHERE ...
GROUP BY EmployeeID;

Je kunt het mooi aan de voorkant formatteren. Of in T-SQL:

;WITH w(e, mw) AS
(
    SELECT EmployeeID, SUM(DATEDIFF(MINUTE, '0:00:00', WrkHrs)) 
    FROM dbo.table 
    -- WHERE ...
    GROUP BY EmployeeID
)
SELECT EmployeeID = e,
  WrkHrs = RTRIM(mw/60) + ':' + RIGHT('0' + RTRIM(mw%60),2)
  FROM w;

U gebruikt echter het verkeerde gegevenstype. TIME wordt gebruikt om een ​​punt in de tijd aan te geven, niet een interval of duur. Zou het niet logisch zijn om hun werkuren in twee verschillende kolommen op te slaan, StartTime en EndTime ?



  1. Hoe kan ik mijn MySQL-gebruikersnaam en -wachtwoord opvragen?

  2. Wat is er nieuw met MySQL-replicatie in MySQL 8.0

  3. hoe stuur e-mail door Pl/sql

  4. Live migraties met MySQL-replicatie