1

たとえば、DATETIME2列が2つあり、2つの間で日付を選択する必要があります。例:2012年1月1日08:00および2012年1月1日09:00は、2012年1月1日08:30を生成する必要があります。

私はこれを試しています:

SELECT CAST((CAST(dtOut AS float(53)) + 
       CAST(dtIn AS float(53))) / 2 AS DATETIME2) FROM t;

しかし、DATETIME2からの明示的な変換が許可されていないというエラーが表示されます。

それを行う方法はありますか?

4

4 に答える 4

3

DateDiff は、2 つの日付の差を検出します。

 select Dateadd(n, DATEDIFF(n, dtIn, dtOut)/2, dtIn) FROM t

余談ですが、フィールドがdatetime2ではなくdatetimeの場合、メソッドは機能します。

于 2012-07-20T07:49:27.650 に答える
0
declare @d1 datetime2, @d2 datetime2
select @d1='1/1/2012 08:00',@d2='1/1/2012 09:00'
 select dateadd(minute,datediff(minute ,@d1,@d2)/2.0,@d1)
于 2012-07-20T07:55:55.947 に答える
0

これを試してみてください。

  select Dateadd(n, DATEDIFF(n, '1/1/2012 08:00', '1/1/2012 09:00')/2, '1/1/2012 08:00');
于 2012-07-20T07:53:20.210 に答える
0

select dateadd(SECOND,datediff(SECOND ,dtIn,dtOut)/2.0,dtIn)

于 2012-07-20T08:26:33.450 に答える