SQL Server 2008 R2のdatetimeにカスタム時刻を追加するを試みています。
以下は私が試したものです。
SELECT DATEADD(hh, 03, DATEADD(mi, 30, DATEADD(ss, 00, DATEDIFF(dd, 0,GETDATE())))) as Customtime
上記のクエリを使用して、私はそれを達成することができます。
しかし、カスタム時間をdatetimeに追加するためにすでに利用可能な短縮方法はありますか?
これを試して
SELECT DATEADD(day, DATEDIFF(day, 0, GETDATE()), '03:30:00')
私にとって、このコードはより明確に見えます:
CAST(@SomeDate AS datetime) + CAST(@SomeTime AS datetime)
これを試して:
SELECT DATEDIFF(dd, 0,GETDATE()) + CONVERT(DATETIME,'03:30:00.000')
これを試して
SELECT DATEADD(MINUTE,HOW_MANY_MINUTES,TO_WHICH_TIME)
ここで、MINUTE
は定数であり、TO_WHICH_TIME
指定子から分を加算/減算することを示します。 HOW_MANY_MINUTES
は、分を追加する必要がある間隔です。負の値が指定されている場合、時間は減算され、そうでない場合はTO_WHICH_TIME
指定子に追加され、TO_WHICH_TIME
はMINUTE
を追加しています。
お役に立てれば。
または、Timeデータ型を使用して別の方法を試してください。
DECLARE @MyTime TIME = '03:30:00', @MyDay DATETIME = CAST(GETDATE() AS DATE)
SELECT @MyDay+@MyTime
できるよ:
SELECT GETDATE()+'03:30:00'
以下はシンプルで、SQL Server 2008(SP3)以降で動作します。
PRINT @@VERSION
PRINT GETDATE()
PRINT GETDATE() + '01:00:00'
PRINT CONVERT(datetime,FLOOR(CONVERT(float,GETDATE()))) + '01:00:00'
出力あり:
Microsoft SQL Server 2008 (SP3) - 10.0.5500.0 (X64)
Mar 15 2017 6:17PM
Mar 15 2017 7:17PM
Mar 15 2017 1:00AM