0

データ型がbigintのSQLサーバーデータベーステーブルに列があります。次に、この列を HH:MM:SS 形式に変換する必要があります。このために、このコマンドを使用します

SELECT cast(CONVERT(VARCHAR,DATEADD(MS,SUM(mFld),0),8) as Time) FROM tblm

しかし、このコマンドは正しい期間を表示しません。適切な期間のために、私はこのコマンドを使用します

SELECT rtrim(LTRIM(cast((mFld/(60*60)) as char)))+':' +rtrim(LTRIM(cast((mFld%(60*60))/(60)as char)))+':'+rtrim(LTRIM(cast(((mFld%(60*60))%(60)) as char))) FROM tblm

このコマンドは正しい結果を示しますが、結果のデータ型は varchar です。この列を同じ結果の時間列に変換するにはどうすればよいですか。

DECLARE @minites bigint;
SET @minites = 5200020;
SELECT rtrim(LTRIM(cast((@minites/(60*60)) as char)))+':' +rtrim(LTRIM(cast((@minites%(60*60))/(60)as char)))+':'+rtrim(LTRIM(cast(((@minites%(60*60))%(60)) as char)))
SELECT cast(CONVERT(VARCHAR,DATEADD(MS,SUM(@minites),0),8) as Time)
4

1 に答える 1

0

この列を時間列に変換して同じ結果を得るにはどうすればよいですか。

できません。時間の範囲は00:00:00.000000023:59:59.9999999です。

時間 (Transact-SQL)

于 2013-06-19T09:51:10.680 に答える