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 的数据库表,其中包含以下记录:
ID | Year | Month | Day | Hours | Minutes | Seconds |
---|---|---|---|---|---|---|
1 | 1999 | 3 | 23 | 22 | 45 | 55 |
2 | 2003 | 6 | 8 | 5 | 34 | 21 |
3 | 2010 | 11 | 28 | 14 | 23 | 10 |
4 | 2004 | 8 | 14 | 9 | 8 | 19 |
5 | 2012 | 1 | 18 | 8 | 11 | 18 |
以下语句可用于使用记录获取日期时间值该表的各个列。
SELECT *, DATETIME2FROMPARTS(Year, Month, Day, Hours, Minutes, Seconds, 0, 3)
AS DATETIME2FROMPARTS_Value FROM DateTimeTable;
这将产生如下所示的结果:
ID | Year | Month | Day | Hours | Minutes | Seconds | DATETIME2FROMPARTS_Value |
---|---|---|---|---|---|---|---|
1 | 1999 | 3 | 23 | 22 | 45 | 55 | 1999-03-23 22:45:55.000 |
2 | 2003 | 6 | 8 | 5 | 34 | 21 | 2003-06-08 05:34:21.000 |
3 | 2010 | 11 | 28 | 14 | 23 | 10 | 2010-11-28 14:23:10.000 |
4 | 2004 | 8 | 14 | 9 | 8 | 19 | 2004-08-14 09:08:19.000 |
5 | 2012 | 1 | 18 | 8 | 11 | 18 | 2012-01-18 08:11:18.000 |