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

时间:2011-11-25 17:18:31

标签: sql-server timezone

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

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

2 个答案:

答案 0 :(得分:1)

由于您使用的是SQL Server 2008,因此可以使用DATETIMEOFFSET datatypeSWITCHOFFSET函数的内置功能。<​​/ p>

您可以执行以下操作:

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

TODATETIMEOFFSET将没有任何时区信息的“常规”日期转换为带有时区(源位置)的DATETIMEOFFSET类型,然后您可以应用SWITCHOFFSET来电该值可以将您的日期/时间“切换”到目标位置的时区。

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

答案 1 :(得分:0)

我认为这会有所帮助,请点击链接:

Effectively Converting dates between UTC and Local (ie. PST) time in SQL 2005

很快,您需要构建时区和DST表以获得有关时区的帮助。

由于