不同时区的SQL Server之间的数据传输

3

我使用SELECT * INTO ....语句(在管理工具中)将数据从一个SQL Server传输到另一个。两个数据库具有不同的时区设置。

是否可以自动调整所有日期/时间字段以适应不同的时区?也许有一些查询参数或连接设置可以实现?


哪个版本的SQL Server?使用SQL Server 2008,您可以获得DATETIMEOFFSET数据类型和SWITCHOFFSET函数,以将日期和时间从一个时区转换为另一个时区。 - marc_s
SQL Server 2008。一般来说,我知道如何转换一个特定的字段。我想要的是能够使用SELECT * INTO .... 我希望避免逐个转换所有字段。 - user1066007
2个回答

1

由于您使用的是SQL Server 2008,您可以使用内置的DATETIMEOFFSET数据类型SWITCHOFFSET函数。

您可以尝试以下操作:

INSERT INTO dbo.YourTargetTable( ...... )
   SELECT
        SWITCHOFFSET(TODATETIMEOFFSET(YourSourceTime, '+04:00'), '-09:00'),
       .......

TODATETIMEOFFSET 将你的 “普通” 日期转换为带有时区(源位置的时区)的 DATETIMEOFFSET 类型,然后你可以对该值应用 SWITCHOFFSET 调用来将你的日期/时间 “切换” 到目标位置的时区。

这可以在 INSERT....SELECT 语句的范围内完成 - 不需要单独的“逐行”更新。


0

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接