SQL使用表A中的数据插入到TAble B中

时间:2014-12-31 20:04:53

标签: sql sql-server

我有两个表,我们称之为表A和表B

表A有n列,我对两个特定的列感兴趣,称之为C1和C2。我需要表2中的数据

表B有n列,其中2列是表A,C1和C2中的相同数据

我需要一个脚本,它将占用表A中的每一行,并使用表A中的C1和C2在表2中创建一条新记录。

表B中的其余列将具有默认值,DateTime为12/30/1899 12:00:00 AM。我需要脚本也将默认DateTime转换为UTC。我有一个可以做到这一点的功能,但我需要在一个可以是ram

的脚本中完成所有这些

这是我的DateTime转换功能

        -- Declare the return variable here 
DECLARE @utcDateTime datetime 
IF @localDateTime IS NOT NULL 
BEGIN 
    SET @utcDateTime = DATEADD(MINUTE, DATEDIFF(MINUTE, GETDATE(), GETUTCDATE()), @localDateTime) 
END 
-- Return the result of the function 
RETURN @utcDateTime 

任何人都可以帮我解决这个问题并使用该函数进行转换吗?

1 个答案:

答案 0 :(得分:2)

正如您所描述的那样,这似乎是一个基本插入:

insert into tableb(c1, c2)
     select c1, c2
     from tablea;

如果要将其他列分配给函数的结果,可以执行以下操作:

insert into tableb(c1, c2, c3, . . .)
     select c1, c2,
            DATEADD(MINUTE, DATEDIFF(MINUTE, GETDATE(), GETUTCDATE()), @localDateTime), . . .
     from tablea;

只需重复每列的功能或表达式。 (我不确定这是否是进行转换的最佳方式,但这就是你编写函数的方法。)