我有两个表,我们称之为表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
任何人都可以帮我解决这个问题并使用该函数进行转换吗?
答案 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;
只需重复每列的功能或表达式。 (我不确定这是否是进行转换的最佳方式,但这就是你编写函数的方法。)