簡體   English   中英

一種在t-SQL中選擇兩個日期之間的日期的方法

[英]A way to select a date between two dates in t-SQL

說,我有兩個DATETIME2列,我需要選擇兩者之間的日期。 示例:1/1/2012 08:00和1/1/2012 09:00應該生成1/1/2012 08:30。

我正在嘗試這個:

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

但是我得到一個錯誤,即不允許從DATETIME2進行顯式轉換。

知道怎么做嗎?

DateDiff將找到兩個日期之間的差異。

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

順便說一句,如果字段是datetime而不是datetime2,那么您的方法將起作用。

試試這個。

  select Dateadd(n, DATEDIFF(n, '1/1/2012 08:00', '1/1/2012 09:00')/2, '1/1/2012 08:00');
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)

選擇dateadd(SECOND,datediff(SECOND,dtIn,dtOut)/2.0,dtIn)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM