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

SQL Server - HH:MM:SS 形式の 2 つの日時スタンプ間の経過時間を計算する

    更新:

    24 時間を超える場合でも、SQL Server でタイムスパンを正しく計算する :

    -- Setup test data
    declare @minDate datetime = '2012-12-12 20:16:47.160'
    declare @maxDate datetime = '2012-12-13 15:10:12.050'
    
    -- Get timespan in hh:mi:ss
    select cast(
            (cast(cast(@maxDate as float) - cast(@minDate as float) as int) * 24) /* hours over 24 */
            + datepart(hh, @maxDate - @minDate) /* hours */
            as varchar(10))
        + ':' + right('0' + cast(datepart(mi, @maxDate - @minDate) as varchar(2)), 2) /* minutes */
        + ':' + right('0' + cast(datepart(ss, @maxDate - @minDate) as varchar(2)), 2) /* seconds */
    
    -- Returns 18:53:24
      

    不正確さを示すエッジケースは特に歓迎します!



    1. MySQLとMariaDBデータベースのバックアップリソース

    2. PHPを使用したトランザクションと組み合わせてプリペアドステートメントを使用するにはどうすればよいですか?

    3. 多くのテーブルまたは行、SQLでより効率的なものはどれですか?

    4. NEWテーブルとOLDテーブルをトリガーからMySQLのプロシージャに渡すことは可能ですか?