【问题标题】: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 日期的秒数

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2021-12-27
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-09-19
        • 2021-11-08
        • 2021-05-22
        相关资源
        最近更新 更多