如何更新列';SQL Server中的偏移量是多少?

如何更新列';SQL Server中的偏移量是多少?,sql,sql-server,datetimeoffset,Sql,Sql Server,Datetimeoffset,我将表的DateTime字段转换为DateTimeOffset,但现在偏移量自动设置为+00:00 我需要将此表的所有DateTimeOffset字段更改为+1:00的偏移量 如何在更新查询中执行此操作?您可以使用SWITCHOFFSET更改偏移量。如果不想更改日期,则需要从日期中减去小时数 SELECT SWITCHOFFSET(DATEADD(hh, -1, CAST (GETDATE() AS DATETIMEOFFSET)), '+01

我将表的
DateTime
字段转换为
DateTimeOffset
,但现在偏移量自动设置为
+00:00

我需要将此表的所有
DateTimeOffset
字段更改为+1:00的偏移量


如何在更新查询中执行此操作?

您可以使用
SWITCHOFFSET
更改偏移量。如果不想更改日期,则需要从日期中减去小时数

SELECT  SWITCHOFFSET(DATEADD(hh, -1, CAST (GETDATE() AS DATETIMEOFFSET)),
                         '+01:00')
DECLARE@t DATETIMEOFFSET
选择@t=Getdate()
选择替换(@t,RIGHT(@t,6),“+01:00”)

您可以使用TODATETIMEOFFSET(日期时间,+01:00')
这不会影响日期时间部分

日期和时间应该保持不变——只有偏移量需要更改。那我就是这样做的吗?
DECLARE @t DATETIMEOFFSET

SELECT @t = Getdate()

SELECT Replace(@t, RIGHT(@t, 6), '+01:00') 

<update tablename set offsetfield = Replace(offsetfield, RIGHT(offsetfield, 6), '+01:00')>