Поскольку вы работаете в SQL Server 2008, вы можете использовать встроенную функциональность DATETIMEOFFSET
тип данных и функцию SWITCHOFFSET
.
Вы можете сделать что-то вроде:
INSERT INTO dbo.YourTargetTable( ...... )
SELECT
SWITCHOFFSET(TODATETIMEOFFSET(YourSourceTime, '+04:00'), '-09:00'),
.......
TODATETIMEOFFSET
преобразует вашу "обычную" дату без какой-либо информации о часовом поясе в тип DATETIMEOFFSET
с часовым поясом (вашего исходного местоположения), а затем вы можете применить вызов SWITCHOFFSET
на это значение, чтобы «переключить» свою дату / время на часовой пояс целевого местоположения.
Это можно сделать в рамках оператора INSERT....SELECT
- отдельное «построчное» обновление не требуется.