SQL Server将小时和分钟从另一个datetime设置为datetime

SQL Server将小时和分钟从另一个datetime设置为datetime,sql,sql-server,tsql,datetime,Sql,Sql Server,Tsql,Datetime,我想动态地从一个日期(@datetime1)获取小时和分钟,并将它们设置为另一个日期时间(@datetime2): 例如: @datetime1 = 2015-01-21 15:33:00 @datetime2 = 2016-03-24 19:42:00 结果应该是: @datetime2 = 2016-03-24 15:33:00 非常感谢您的帮助像这样的方法应该可以奏效: --@datetime1 = 2015-01-21 15:33:00 --@datetime2 = 2016-03-

我想动态地从一个日期(
@datetime1
)获取小时和分钟,并将它们设置为另一个日期时间(
@datetime2
):

例如:

@datetime1 = 2015-01-21 15:33:00
@datetime2 = 2016-03-24 19:42:00
结果应该是:

@datetime2 = 2016-03-24 15:33:00

非常感谢您的帮助

像这样的方法应该可以奏效:

--@datetime1 = 2015-01-21 15:33:00
--@datetime2 = 2016-03-24 19:42:00

set @date1 = convert(date, @datetime1)
set @date2 = convert(date, @datetime2)

set @datetime3 = dateadd(second, datediff(second, @date1, @datetime1), @date2)

这将增加从@datetime1到@datetime2的秒数

假设这些是日期时间,您可以通过转换和
+

select cast(cast(@datetime1 as date) as datetime) + cast(cast(@datetime2 as time) as datetime)
SQL Server允许将
datetime
值添加到一起,但不允许将大多数其他日期/时间数据类型添加到一起