SQL Server 函数

SQL Server (Transact-SQL) DATETIME2FROMPARTS() 函数以指定的精度从指定的日期和时间参数返回日期时间值。

如果任何参数具有空值,DATETIME2FROMPARTS() 函数将返回 NULL。但是,如果精度参数为空,则会引发错误。对于无效参数,将引发错误。

fractions 参数取决于 precision 参数。例如,如果精度为 7,则每个小数代表 100 纳秒;如果精度为 3,则每个小数代表一毫秒。如果精度的值为零,则分数的值也必须为零;

语法

DATETIME2FROMPARTS(year, month, day, hour, minute, seconds, fractions, precision) 

参数

year必填。 指定日期时间值的年份。
month必填。 指定日期时间值的月份。
day必填。 指定日期时间值的日期。
hour必填。 指定日期时间值的小时。
minute必填。 指定日期时间值的分钟。
seconds必填。 指定日期时间值的秒数。
fractions必填。 指定日期时间值的小数部分。
precision必需。 指定要返回的日期时间值的精度。

返回值

返回指定的日期时间值

示例 1:

下面的示例显示了 DATETIME2FROMPARTS() 函数的用法。

SELECT DATETIME2FROMPARTS(1999, 10, 25, 22, 45, 58, 0, 0);
Result: '1999-10-25 22:45:58.0000000'

SELECT DATETIME2FROMPARTS(1999, 10, 25, 22, 45, 58, 4, 1);
Result: '1999-10-25 22:45:58.4'

SELECT DATETIME2FROMPARTS(1999, 10, 25, 22, 45, 58, 40, 2);
Result: '1999-10-25 22:45:58.40'

SELECT DATETIME2FROMPARTS(1999, 10, 25, 22, 45, 58, 400, 3);
Result: '1999-10-25 22:45:58.400' 

示例 2:

考虑一个名为 DateTimeTable 的数据库表,其中包含以下记录:

IDYearMonthDayHoursMinutesSeconds
11999323224555
220036853421
320101128142310
420048149819
5201211881118

以下语句可用于使用记录获取日期时间值该表的各个列。

SELECT *, DATETIME2FROMPARTS(Year, Month, Day, Hours, Minutes, Seconds, 0, 3) 
AS DATETIME2FROMPARTS_Value FROM DateTimeTable; 

这将产生如下所示的结果:

IDYearMonthDayHoursMinutesSecondsDATETIME2FROMPARTS_Value
119993232245551999-03-23 22:45:55.000
2200368534212003-06-08 05:34:21.000
3201011281423102010-11-28 14:23:10.000
4200481498192004-08-14 09:08:19.000
52012118811182012-01-18 08:11:18.000