あなたのコメントは、あなたが区間(または期間)で算術演算をしようとしているように聞こえます。
SQL Serverのtime
データ型 "時刻を定義します。時刻にはタイムゾーンを認識せず、24時間表示に基づいています。" 2つのtime
値を追加することはできません。 2時+ 3時は文字通りナンセンスです。 SQL Server 2012で。 。 。
select cast('2:00' as time) + cast('3:00' as time)
Operand data type time is invalid for add operator.
その他のdbmsは、無意味な数値を返すことがあります。
標準SQLには、interval
というデータ型が含まれています。これは、期待する算術演算と書式設定をサポートしています。だから2時+ 3時間は5時0分(5時)に戻ります。 interval
データ型のサポートがない場合は、最も細かい単位(秒)を整数として格納し、表示用にフォーマットします。私はビューを自分で使うかもしれない。
declare @val as integer;
-- 10:01:12, 10 hours, 1 minute, 12 seconds, in seconds.
set @val = (10 * 60 * 60) + (1 * 60) + 12;
-- Leading zeroes for minutes and seconds.
select @val as total_sec,
concat(@val/(60 * 60), ':', format((@val/60) % 60, 'D2'), ':', format(@val % 60, 'D2')) as total_time
total_sec total_time
--
36072 10:01:12
なぜ 'time'列タイプに建てを使わないのでしょうか? – mclaassen