sql >> データベース >  >> RDS >> Sqlserver

SQLServerで時間フィールドを合計する方法

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

    フロントエンドできれいにフォーマットできます。または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;
    

    ただし、間違ったデータ型を使用しています。 TIME 間隔や期間ではなく、特定の時点を示すために使用されます。勤務時間を2つの異なる列StartTimeに保存するのは理にかなっていますか? およびEndTime



    1. Access2016のデザインビューでテーブルを作成する方法

    2. JavaFXチャートAPIの操作

    3. JavaからOracle関数を呼び出す

    4. ホスト「xxx.xx.xxx.xxx」はこのMySQLサーバーへの接続を許可されていません