2016-06-08 109 views

回答

1

使用DateAddDateDiff

SELECT DATEADD(DAY, DATEDIFF(DAY, EndDate, startDate), EndDate) As StartDate, 
     EndDate 
FROM MyTable 

我加入的开始日期和结束日期之间的天差。 由于DateDiff具有较早日期之前的较晚日期,因此它会将天差作为负数返回。

,我猜有些人会发现更可读的另一种选择是这样的:

SELECT DATEADD(DAY, -DATEDIFF(DAY, startDate, EndDate), EndDate) As StartDate, 
     EndDate 
FROM MyTable 
+0

哇,它的工作原理达到毫秒,我也没多想用DATEADD DATEDIFF结合。 谢谢 – Raffaeu

+1

是的,所有你改变的是天数,时间部分不受此影响。 –