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

10進時間を時間と分に変換する

    試すことができます:

    DECLARE @HOURS decimal(7,4) = 20.5599
    SELECT  CAST(CONVERT(VARCHAR,DATEADD(SECOND, @HOURS * 3600, 0),108) AS TIME)
    

    出力:20:33:35

    ただし、覚えておいてください:MSSQLでTimeを入力するのは24時間以内です

    24時間以上必要な場合は、次を試してください:

    DECLARE @HOURS decimal(7,4) = 25.5599
    SELECT 
    RIGHT('0' + CAST (FLOOR(@HOURS) AS VARCHAR), 2) + ':' + 
    RIGHT('0' + CAST(FLOOR((((@HOURS * 3600) % 3600) / 60)) AS VARCHAR), 2) + ':' + 
    RIGHT('0' + CAST (FLOOR((@HOURS * 3600) % 60) AS VARCHAR), 2)
    

    出力:25:33:35

    -更新

    10進数の分から24時間以上

    DECLARE @MINUTES decimal(7,4) = 77.9
    SELECT
    RIGHT('0' + CAST (FLOOR(COALESCE (@MINUTES, 0) / 60) AS VARCHAR (8)), 2) + ':' + 
    RIGHT('0' + CAST (FLOOR(COALESCE (@MINUTES, 0) % 60) AS VARCHAR (2)), 2) + ':' + 
    RIGHT('0' + CAST (FLOOR((@MINUTES* 60) % 60) AS VARCHAR (2)), 2);
    

    出力:01:17:54



    1. Oracle SqlPlus-出力をファイルに保存しますが、画面に表示されません

    2. Oracle11gでシーケンスをリセット

    3. Herokuで列タイプを変更するにはどうすればよいですか?

    4. PostgreSQLの数値の前にプラス/マイナス記号を付ける