T-SQL 使用另一个 DateTime 时间部分更改 DateTime 的时间部分
T-SQL change Time Portion of a DateTime, using another DateTime Time portion
我有一个 select 声明 returns 以下内容:
SELECT
StartDate
,EndDate
FROM
MyTable
结果returns以下数据:
我想要的是使用 EndDate 的值更改 StartDate 的 时间部分 。因此只有两个日期的时间部分是相同的,取自 EndDate。我必须保持相同,精确到毫秒。
是否可以使用 DATEADD 函数?
SELECT DATEADD(DAY, DATEDIFF(DAY, EndDate, startDate), EndDate) As StartDate,
EndDate
FROM MyTable
我添加了开始日期和结束日期之间的天数差异。
由于 DateDiff 在较早的日期之前有较晚的日期,因此 returns 天数差为负数。
我猜有些人会觉得更易读的另一个选项是:
SELECT DATEADD(DAY, -DATEDIFF(DAY, startDate, EndDate), EndDate) As StartDate,
EndDate
FROM MyTable
我有一个 select 声明 returns 以下内容:
SELECT
StartDate
,EndDate
FROM
MyTable
结果returns以下数据:
我想要的是使用 EndDate 的值更改 StartDate 的 时间部分 。因此只有两个日期的时间部分是相同的,取自 EndDate。我必须保持相同,精确到毫秒。
是否可以使用 DATEADD 函数?
SELECT DATEADD(DAY, DATEDIFF(DAY, EndDate, startDate), EndDate) As StartDate,
EndDate
FROM MyTable
我添加了开始日期和结束日期之间的天数差异。 由于 DateDiff 在较早的日期之前有较晚的日期,因此 returns 天数差为负数。
我猜有些人会觉得更易读的另一个选项是:
SELECT DATEADD(DAY, -DATEDIFF(DAY, startDate, EndDate), EndDate) As StartDate,
EndDate
FROM MyTable