2011-11-25 36 views
2

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

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

+0

哪个**版本的SQL Server?使用** SQL Server 2008 **,您可以获得'DATETIMEOFFSET'数据类型和'SWITCHOFFSET'功能,可将日期和时间从一个时区转换为另一个时区。 –

+0

SQL Server 2008.通常我知道如何转换一个特定的字段。我想要的是能够使用SELECT * INTO ....我想避免一个一个地转换所有字段。 – user1066007

回答

1

既然你是SQL Server 2008上,您可以使用DATETIMEOFFSET datatype的内置功能,以及SWITCHOFFSET功能。

你可以这样做:

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

TODATETIMEOFFSET没有任何时区信息转换你的“正规”的日期为DATETIMEOFFSET类型与时区(源位置),然后你可以申请一个SWITCHOFFSET调用该值将您的日期/时间“切换”到目标位置的时区。

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

相关问题