DATETIMEOFFSETFROMPARTS (Transact-SQL)
对指定的日期和时间返回具有指定偏移量和精度的 datetimeoffset 值。
语法
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
整数文字,用于指定要返回的 datetimeoffset 值的精度。
返回类型
datetimeoffset ( precision )
注释
DATETIMEOFFSETFROMPARTS 返回完全初始化的 datetimeoffset 数据类型。 偏移量参数用来表示时区偏移量。 如果忽略偏移量参数,则认为时区偏移量是 00:00,也即没有时区偏移量。 如果指定了偏移量参数,则必须存在这两个参数,且两者必须为正数或负数。 如果指定了 minute_offset,但没有 hour_offset,将引发错误。 如果其他参数无效,则引发错误。 如果所需的参数为 null,则返回 null。 但是,如果 precision 参数为 Null,则会引发错误。
fractions 参数取决于 precision 参数。 例如,如果 precision 为 7,则每个分数表示 100 毫微秒;如果 precision 为 3,则每个分数表示 1 毫秒。 如果 precision 的值为零,则 fractions 的值也必须为零;否则将引发错误。
此函数可以在 SQL Server 2012 服务器以及更高版本上远程执行。 但在 SQL Server 2012 之下的服务器版本中无法远程执行。
示例
A.不包含秒的小数部分的简单示例
SELECT DATETIMEOFFSETFROMPARTS ( 2010, 12, 31, 14, 23, 23, 0, 12, 0, 7 ) AS Result;
下面是结果集:
Result
-------------------------------------------
2010-12-07 00:00:00.0000000 +00:00
(1 row(s) affected)
B.包含秒的小数部分的示例
以下示例演示了 fractions 和 precision 参数的用法:
如果 fractions 的值为 5、precision 的值为 1,则 fractions 的值表示 5/10 秒。
如果 fractions 的值为 50、precision 的值为 2,则 fractions 的值表示 50/100 秒。
如果 fractions 的值为 500、precision 的值为 3,则 fractions 的值表示 500/1000 秒。
SELECT DATETIMEOFFSETFROMPARTS ( 2011, 8, 15, 14, 30, 00, 5, 12, 30, 1 );
SELECT DATETIMEOFFSETFROMPARTS ( 2011, 8, 15, 14, 30, 00, 50, 12, 30, 2 );
SELECT DATETIMEOFFSETFROMPARTS ( 2011, 8, 15, 14, 30, 00, 500, 12, 30, 3 );
GO
下面是结果集:
----------------------------------
2011-08-15 14:30:00.5 +12:30
(1 row(s) affected)
----------------------------------
2011-08-15 14:30:00.50 +12:30
(1 row(s) affected)
----------------------------------
2011-08-15 14:30:00.500 +12:30
(1 row(s) affected)