SQL TODATETIMEOFFSET() 函数

SQL TODATETIMEOFFSET() 函数

SQL TODATETIMEOFFSET() 函数是一个日期和时间函数,它使用用户指定的datetime2和时区来返回一个datetimeoffset值。

TODATETIMEOFFSET函数有两个输入参数,一个是目标时区偏移量,一个是没有偏移的日期和时间值,它们简单地组合在一起以产生一个DATETIMEOFFSET值。该函数的输出是一个datetimeoffset数据类型的值。

我们可以以分钟或小时的格式提供时区。如果以分钟提供,则使用整数(-4);如果以小时提供,则使用字符串(’+06.00’)。时区的范围是+14至-14(小时)。

语法

SQL TODATETIMEOFFSET() 函数的语法如下所示:

TODATETIMEOFFSET(expression,time_zone)

参数

该函数只接受两个参数。具体描述如下:

  • expression - 要解析为datetime2值的表达式。

  • time_zone - 表示时区偏移的时间偏移或带符号整数范围,范围从+14到-14。

示例

在以下示例中,我们将使用以下查询更改分钟的时区偏移量。

在此示例中,我们将当前时区更改为-150分钟。

SELECT TODATETIMEOFFSET (GETDATE(), -150) AS Result;

输出

执行上述查询时,输出如下:

+--------------------------------+
| Result                         |
+--------------------------------+
| 2023-02-20 12:52:55.827 -02:30 |
+--------------------------------+

示例

让我们看看另一种情况,我们将使用正分钟来改变时区,使用以下查询语句:

SELECT TODATETIMEOFFSET (GETDATE(), 360) AS Result;

输出

当查询执行时,将生成以下输出:

+--------------------------------+
| Result                         |
+--------------------------------+
| 2023-02-20 15:22:33.533 +06:00 |
+--------------------------------+

示例

在以下示例中,我们将使用datetime2值明确设置变量,并应用TODATETIMEOFFSET()到该值,并通过使用以下查询比较这两个值 –

DECLARE @DATE datetime2 = '2023-02-20 02:33:18.0000000';
SELECT @DATE AS 'Original Date',
   TODATETIMEOFFSET( @DATE, '+06:00' ) AS '+06:00';

输出

执行上述查询后,输出如下:

+-----------------------------+-------------------------------------+
| Original Date               | +06:00                              |
+-----------------------------+-------------------------------------+
| 2023-02-20 02:33:18.0000000 | 2023-02-20 02:33:18.0000000 +06:00  |
+-----------------------------+-------------------------------------+

示例

让我们来看另一个示例,在这个示例中,我们将使用以下查询将时区偏移设置为整数。

SELECT TODATETIMEOFFSET( '2023-02-20 02:33:18.0000000', -150 ) AS Result;

输出

上述查询的输出如下所示:

+------------------------------------+
| Result                             |
+------------------------------------+
| 2023-02-20 02:33:18.0000000 -02:30 |
+------------------------------------+

示例

让我们来看一个示例,我们使用 SYSDATETIMEOFFSET() 函数作为日期表达式,它可以通过以下查询生成SQL服务器运行的系统的当前日期/时间。

SELECT SYSDATETIMEOFFSET() AS 'Current Date',
   TODATETIMEOFFSET( SYSDATETIMEOFFSET(), '+06:00' ) AS '+06:00';

输出

当查询执行时,它将生成如下所示的输出 −

+------------------------------------+------------------------------------+
| Current Date                       | +06:00                             |
+------------------------------------+------------------------------------+
| 2023-02-20 14:50:06.8050290 +05:30 | 2023-02-20 14:50:06.8050290 +06:00 |
+------------------------------------+------------------------------------+

示例

在以下示例中,我们使用 DATETIMEOFFSET() 函数,并通过以下查询使用TODATETIMEOFFSET()函数来检索偏移值 –

DECLARE @DATE DATETIMEOFFSET = '2023-02-20 14:50:06.8050290 +04:30';
SELECT @DATE AS 'Original Date',
   TODATETIMEOFFSET( @DATE, '+06:00' ) AS '+06:00';

输出

运行上述查询后,将生成以下输出−

+------------------------------------+------------------------------------+
| Original Date                      | +06:00                             |
+------------------------------------+------------------------------------+
| 2023-02-20 14:50:06.8050290 +04:30 | 2023-02-20 14:50:06.8050290 +06:00 |
+------------------------------------+------------------------------------+

示例

在下面的示例中,我们使用 DATETIMEOFFSET() 函数,并通过使用以下查询来使用TODATETIMEOFFSET()函数检索偏移值 –

DECLARE @DATE DATETIMEOFFSET = '2023-02-20 14:50:06.8050290 +04:30';
SELECT @DATE AS 'Original Date',
   TODATETIMEOFFSET( @DATE, '+06:00' ) AS '+06:00';

输出

运行以上查询,将生成如下所示的输出结果−

+------------------------------------+------------------------------------+
| Original Date                      | +06:00                             |
+------------------------------------+------------------------------------+
| 2023-02-20 14:50:06.8050290 +04:30 | 2023-02-20 14:50:06.8050290 +06:00 |
+------------------------------------+------------------------------------+

示例

看下面的示例,我们将使用小时来改变时区,通过运行以下查询:

SELECT TODATETIMEOFFSET (GETDATE(), '+05:30') AS Result;

输出

如果我们执行上述查询,结果将产生如下:

+--------------------------------+
| Result                         |
+--------------------------------+
| 2023-02-20 15:12:41.213 +05:30 |
+--------------------------------+

示例

下面是另一个场景,我们将使用负数小时来改变时区,使用以下查询:

SELECT TODATETIMEOFFSET (GETDATE(), '-06:00') AS Result;

输出

执行上述查询后,将生成如下所示的输出结果。

+---------------------------------+
| Result                          |
+---------------------------------+
| 2023-02-20 15:16:30.247 -06:00  |
+---------------------------------+

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程