SWITCHOFFSET 函数调整
将 DATETIMEOFFSET 值输入到
指定时区,同时保留
UTC 值。语法是
SWITCHOFFSET(datetimeoffset_value,
时区)。例如,以下
代码调整当前系统
时区 GMT 的 datetimeoffset 值
+05:00:
选择
SWITCHOFFSET(SYSDATETIMEOFFSET(),
'-05:00');
所以如果当前系统
datetimeoffset 值为 2 月 12 日,
2009 10:00:00.0000000 -08:00,这
代码返回 2 月 12 日的值,
2009 13:00:00.0000000 -05:00。
TODATETIMEOFFSET 函数设置
输入日期的时区偏移量和
时间价值。它的语法是
TODATETIMEOFFSET(日期和时间值,
时区)。
此功能不同于
SWITCHOFFSET 有几种方式。第一的,
它不限于
datetimeoffset 值作为输入;相当
它接受任何日期和时间数据
类型。第二,它不尝试
根据时区调整时间
源值之间的差异
和指定的时区但是
而是简单地返回输入日期
和指定时间的时间值
zone 作为 datetimeoffset 值。
主要目的
TODATETIMEOFFSET 函数是
转换非时区类型
知道给定的 DATETIMEOFFSET
时区偏移。如果给定日期
时间值是 DATETIMEOFFSET,
TODATETIMEOFFSET 函数更改
DATETIMEOFFSET 值基于
相同的原始本地日期和时间
值加上新的给定时区
偏移量。
例如,当前系统
datetimeoffset 值为 2 月 12 日,
2009 10:00:00.0000000 -08:00,而你
运行以下代码:
选择
TODATETIMEOFFSET(SYSDATETIMEOFFSET(),
'-05:00');
2009 年 2 月 12 日的值
返回 10:00:00.0000000 -05:00。
请记住,SWITCHOFFSET
函数于 2009 年 2 月 12 日返回
13:00:00.0000000 -05:00 因为它
根据时间调整时间
输入之间的区域差异
(-08:00) 和指定的时区
(-05:00)。
如前所述,您可以使用
TODATETIMEOFFSET 函数与任何
日期和时间数据类型作为输入。为了
例如,以下代码采用
当前系统日期和时间值和
将其作为 datetimeoffset 值返回
时区 -00:05:
选择 TODATETIMEOFFSET(SYSDATETIME(),
'-05:00');