【问题标题】:SQL Server 2012, Concat a Date with a Time column to insert into a DateTime column in another tableSQL Server 2012,将日期与时间列连接到另一个表中的日期时间列中
【发布时间】:2013-04-21 07:03:25
【问题描述】:

在 SQL Server 2012 中...我在一个表中有两列, 交易日期(日期,空)和 TransactionTime(time, null)

我需要将它们连接在一起以插入另一个表的列,该列是日期时间数据类型。

这可能吗?

提前致谢。

【问题讨论】:

  • 先向我们展示你的想法。
  • 你能更明确地说明每一列的数据类型吗?

标签: sql sql-server database-design


【解决方案1】:

也许最好的起点是 SQL Server 日期和时间数据类型/函数在线指南: http://msdn.microsoft.com/en-us/library/ms186724.aspx

您应该可以使用DATEPART 函数结合DATETIMEFROMPARTS 函数来实现这一点。

【讨论】:

    【解决方案2】:

    试试这个 -

    DECLARE @temp TABLE
    (
          TransactionDate DATE
        , TransactionTime TIME
    )
    
    INSERT INTO @temp (TransactionDate, TransactionTime)
    VALUES 
        ('2013-04-27', '08:37:01.217'),
        ('2013-04-27', '12:39:14.613')
    
    --INSERT INTO ... (DatetimeColumn)
    SELECT CAST(TransactionDate AS VARCHAR(10)) + ' ' + CAST(TransactionTime AS VARCHAR(12))
    FROM @temp
    

    【讨论】:

      【解决方案3】:
      dateadd(millisecond, datediff(millisecond, '00:00', TransactionTime), cast(TransactionDate as datetime))
      

      计算从午夜开始的毫秒数作为时间值并将其添加到您的日期值中。

      【讨论】:

        【解决方案4】:

        为什么不

        SELECT TransactionDate+ CAST(TransactionTime AS datetime)
        FROM table
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2017-04-22
          • 1970-01-01
          • 2021-10-22
          • 2015-01-21
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多