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

SQLでHH:MM:SSの日時の合計を計算する

    varchar ではなく、時刻 (SQL Server のバージョンがサポートしていない場合は datetime) に変換するつもりだったと思います。

    しかし、これは非常に悪い方法です。 25:01:01 は有効な日時ではありません。 (別の回答で提案されているように)秒を合計し、最後に好きなように結果をフォーマットする必要があります。

    そのため、最初のクエリに、継続時間を秒単位で示す別の列を含めます。

    , DateDiff(s,[Start Date] , [End Date]) as [Ticket Type Seconds]
    

    次に、2 番目のクエリで、SUM([Ticket Type Seconds]) を次のようにフォーマットします。

    STR(SUM([Ticket Type Seconds])/3600) 
    + RIGHT(CONVERT(char(8),DATEADD(s,SUM([Ticket Type Seconds]),0),108),6)
    

    これにより、秒を変換したときに得られる日時の ':MM:SS' 部分と連結された時間 (24 を超える可能性があります) が得られます (0 日付:19000101 00:00:00 に追加されます)。日時.



    1. WindowsでRMySQLを使用する方法は?

    2. PHPとMySQLを使用してサイトマップを作成する方法

    3. SQLでのDateTimeの差の合計(HH.MM)

    4. MySQLテーブルへの単純なリストの挿入(php)