SQL DATETIMEOFFSETFROMPARTS() 函数
SQL DATETIMEOFFSETFROMPARTS() 函数可以从一个日期的各个组成部分中提取一个 datetimeoffset 值。它特别返回给定时间和日期的 datetimeoffset 值,以及偏移和精度。
DATETIMEOFFSETFROMPARTS 是在创建基于偏移量和精度的日期和时间时使用的关键 SQL 服务器操作之一。根据给定的日期和时间组件输入,返回一个值。每个参数都是必需的。如果有任何参数为 null,则返回 null。
语法
SQL DATETIMEOFFSETFROMPARTS() 函数的语法如下所示:
DATETIMEOFFSETFROMPARTS ( year, month, day, hour, minute, seconds, fractions, hour_offset, minute_offset, precision )
参数
此函数接受如下所讨论的十个参数:
- year - 表示年份的整数表达式。
-
month - 表示月份的整数表达式。
-
day - 表示日期的整数表达式。
-
hour - 表示小时的整数表达式。
-
minute - 表示分钟的整数表达式。
-
seconds - 表示秒数的整数表达式。
-
fractions - 表示秒的小数部分的整数表达式。
-
hour_offset - 表示时区偏移的小时部分的整数表达式。
-
minute_offset - 表示时区偏移的分钟部分的整数表达式。
-
precision - 表示DATETIMEOFFSETFROMPARTS将返回的datetimeoffset值的精度的整数值。
示例
在以下查询中,我们将使用DATETIMEOFFSETFROMPARTS()函数以及日期和时间参数来构建DATETIMEOFFSET:
SELECT DATETIMEOFFSETFROMPARTS(2023, 02, 21, 12, 28, 30, 5000, 10, 30, 4) AS Result;
输出
当我们执行上述查询时,得到的输出如下所示:
+---------------------------------+
| Result |
+---------------------------------+
| 2023-02-21 12:28:30.5000 +10:30 |
+---------------------------------+
示例
让我们来看另一种情况,我们将使用空值来表示日期,并通过运行以下查询来检查结果 –
SELECT DATETIMEOFFSETFROMPARTS(2023, 02, NULL, 12, 28, 30, 5000, 10, 30, 4) AS Result;
输出
当查询执行时,它将生成如下所示的输出−
+-------+
| Result|
+-------+
| NULL |
+-------+
示例
在以下示例中,我们将使用无效的参数,导致DATETIME2FROMPARTS()函数返回错误,请通过运行以下查询来检查此问题 –
SELECT DATETIMEOFFSETFROMPARTS(2023, 22, 21, 12, 28, 30, 5000, 10, 30, 4) AS Result;
输出
在执行上述查询时,输出如下所示−
Cannot construct data type datetimeoffset, some of the arguments have values which are not valid.
示例
让我们看另一种情况,我们不打算指定参数的总数,并通过运行查询来检查结果。
SELECT DATETIMEOFFSETFROMPARTS(2023, 22, 21) AS Result;
输出
当执行查询时,将生成以下输出结果 −
The datetimeoffsetfromparts function requires 10 argument(s).
示例
下面,我们将提到最后一个精度值为NULL,并通过运行以下查询来检查结果-
SELECT DATETIMEOFFSETFROMPARTS(2023, 22, 21, 12, 28, 30, 5000, 10, 30, NULL) AS Result;
输出
上述查询的输出如下:
Scale argument is not valid. Valid expressions for data type datetimeoffset scale argument are integer constants and integer constant expressions.
示例
在下面的示例中,我们将提及大于小数位数的精度值,并通过使用以下查询来检查结果 –
SELECT DATETIMEOFFSETFROMPARTS(2023, 02, 21, 12, 28, 30, 363, 10, 30, 7) AS Result;
输出
当查询执行时,将生成如下输出 –
+------------------------------------+
| Result |
+------------------------------------+
| 2023-02-21 12:28:30.0000363 +10:30 |
+------------------------------------+
示例
让我们考虑另一种情况,我们将使用小数点以下的精度值,并通过以下查询来检查结果 –
SELECT DATETIMEOFFSETFROMPARTS(2023, 02, 21, 12, 28, 30, 363, 10, 30, 2) AS Result;
输出
运行上述查询后,将生成如下输出:
Cannot construct data type datetimeoffset, some of the arguments have values which are not valid.