【问题标题】:Concatenating Date and Time from two different columns to a new column [duplicate]将两个不同列中的日期和时间连接到新列[重复]
【发布时间】:2015-06-20 20:15:10
【问题描述】:

我有一个数据类型为Date 的日期列和一个数据类型为Time 的时间列。

Column A    Column B
4/6/2015    13:25:18
4/10/2015   12:52:14
4/10/2015   10:39:48

我需要连接这两列并插入数据类型为Datetime 的列中。

Column C
2015-06-04 13:25:18
2015-10-4 12:52:14
2015-10-4 10:39:48

我在一列中只有日期,在另一列中只有时间,我现在正在使用下面的内容,这会引发错误

CONVERT(datetime, LEFT([ColumnA], 12) + LEFT([Column B], 7), 101) as ColumnC

【问题讨论】:

  • 请提供一些示例数据和预期结果。
  • A 列 B 列 4/6/2015 13:25:18 4/10/2015 12:52:14 4/10/2015 10:39:48 需要以 ' 的形式插入另一列2015-06-04 13:25:18' ...如果您需要更多详细信息,请告诉我
  • 把你的 cmets 放在问题中。

标签: sql sql-server tsql


【解决方案1】:

这可能会有所帮助。

1.如果您只是在进行选择查询,这将有所帮助:

SELECT FORMAT([Column A],'yyyy-MM-dd') + ' ' + FORMAT([Column B],'')AS [Column C] FROM TableName;

2.但是,如果您想添加新列现有表并添加现有日期和时间值 em> 这个新列中的每一行,这将有所帮助:

ALTER TABLE TableName
ADD [Column C] smalldatetime;
UPDATE TableName
SET [Column C] = FORMAT([Column A],'yyyy-MM-dd') + ' ' + CAST([Column B] AS varchar);

【讨论】:

    【解决方案2】:
    CREATE TABLE #test([Column A] DATE, [Column B] TIME, [Column C] DATETIME2)
    
    INSERT INTO #test([Column A], [Column B]) VALUES  ('4/6/2015', '13:25:18')
                                                     ,('4/10/2015', '12:52:14')
                                                     ,('4/10/2015', '10:39:48')
    
    UPDATE #test
    SET [Column C] = CAST([Column A] AS VARCHAR(10)) + ' ' + CAST([Column B] AS VARCHAR(8))
    
    SELECT * FROM #test
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-12-25
      • 2013-04-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多