【问题标题】:SQL Server set hours and minutes to datetime from another datetimeSQL Server 将小时和分钟设置为另一个日期时间的日期时间
【发布时间】:2016-03-24 18:49:18
【问题描述】:
我想动态获取日期 (@datetime1) 的小时和分钟,并将它们设置为另一个日期时间 (@datetime2):
例如:
@datetime1 = 2015-01-21 15:33:00
@datetime2 = 2016-03-24 19:42:00
结果应该是:
@datetime2 = 2016-03-24 15:33:00
非常感谢您的帮助
【问题讨论】:
标签:
sql
sql-server
tsql
datetime
【解决方案1】:
假设这些是日期时间,您可以只使用转换和+:
select cast(cast(@datetime1 as date) as datetime) + cast(cast(@datetime2 as time) as datetime)
SQL Server 允许将 datetime 值相加,但不允许将大多数其他日期/时间数据类型相加。
【解决方案2】:
这样的事情应该可以工作:
--@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 日期的秒数