【发布时间】:2016-10-08 15:54:03
【问题描述】:
我有一个返回以下内容的 select 语句:
SELECT
StartDate
,EndDate
FROM
MyTable
结果返回如下数据:
我想要的是使用 EndDate 的值更改 StartDate 的 时间部分。这样只有两个日期的时间部分是相同的,取自 EndDate。我必须保持相同,精确到毫秒。
是否可以使用 DATEADD 功能?
【问题讨论】:
我有一个返回以下内容的 select 语句:
SELECT
StartDate
,EndDate
FROM
MyTable
结果返回如下数据:
我想要的是使用 EndDate 的值更改 StartDate 的 时间部分。这样只有两个日期的时间部分是相同的,取自 EndDate。我必须保持相同,精确到毫秒。
是否可以使用 DATEADD 功能?
【问题讨论】:
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
【讨论】: