SQLServer2012でT-SQLを使用time
して既存の値に値を追加する必要があります。datetime
DATEADD関数は解決策かもしれないと思っていましたが、そうではありません...
おそらく私はどういうわけかtime
に変換していdatetime
ますか?
ので、私は持っています
StartDate 2013-02-18 18:34:40.330(日時)
間隔00:11:00.0000000(時間)
終了日 ?tsql?(日付時刻)
どんな手掛かり?
SQLServer2012でT-SQLを使用time
して既存の値に値を追加する必要があります。datetime
DATEADD関数は解決策かもしれないと思っていましたが、そうではありません...
おそらく私はどういうわけかtime
に変換していdatetime
ますか?
ので、私は持っています
StartDate 2013-02-18 18:34:40.330(日時)
間隔00:11:00.0000000(時間)
終了日 ?tsql?(日付時刻)
どんな手掛かり?
DECLARE @d DATETIME = '2013-02-18T18:34:40.330',
@t TIME(7) = '00:11:00.0000000';
SELECT EndDate = DATEADD(SECOND, DATEDIFF(SECOND, 0, @t), @d);
結果:
EndDate
-----------------------
2013-02-18 18:45:40.330
さて、間隔をtime
列に格納するべきではありません。期間ではなく、ある時点time
を表すことを意図しています。間隔が 24 時間以上の場合はどうなりますか? イベントの開始時刻と終了時刻を保存する必要があり (これらは通常、少なくとも期間と同じくらい関連性があります)、これらのポイントからいつでも期間を計算できます。
このようなことを試してください。注:ここではミリ秒を使用していません
declare @dt datetime = getdate()
declare @t time = '01:35:45'
select dateadd(second,
datepart(hour,@t) * 3600 +
datepart(minute,@t) * 60 +
datepart(second,@t),
@dt)