7
SQL Serverでdatetime2に日付と時刻を組み合わせる方法は?
次のコンポーネントを考える DECLARE @D DATE = '2013-10-13' DECLARE @T TIME(7) = '23:59:59.9999999' それらを組み合わせてDATETIME2(7)価値のある結果を生成する最良の方法は何'2013-10-13 23:59:59.9999999'ですか? 動作しないものを以下にリストします。 SELECT @D + @T オペランドデータ型の日付は、追加演算子には無効です。 SELECT CAST(@D AS DATETIME2(7)) + @T オペランドのデータ型datetime2は、add演算子には無効です。 SELECT DATEADD(NANOSECOND,DATEDIFF(NANOSECOND,CAST('00:00:00.0000000' AS TIME),@T),@D) datediff関数の結果、オーバーフローが発生しました。2つの日付/時刻インスタンスを分離する日付部分の数が多すぎます。精度の低い日付部分でdatediffを使用してみてください。 *を使用して、Azure SQL DatabaseおよびSQL Server 2016でオーバーフローを回避できますDATEDIFF_BIG。 SELECT CAST(@D AS DATETIME) + @T 日付と時刻のデータ型は、add演算子と互換性がありません。 SELECT CAST(@D AS DATETIME) + CAST(@T AS …