Sqlserver
 sql >> база данни >  >> RDS >> Sqlserver

DATETIME2FROMPARTS() Примери в SQL Server (T-SQL)

В SQL Server DATETIME2FROMPARTS() функцията работи подобно на DATETIMEFROMPARTS() функция, с изключение на това, че приема 8 аргумента и връща datetime2 стойност. DATETIMEFROMPARTS() функцията, от друга страна, приема само 7 аргумента и връща datetime стойност.

По принцип вие предоставяте всички части за дата/час и тази функция ще върне datetime2 стойност въз основа на частите, които предоставяте.

Синтаксис

Първо, ето синтаксиса:

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

Където всеки от първите 7 аргумента е целочислен израз, който определя тази част от датата. Например year е цяло число, което определя частта от годината на датата.

8-ият аргумент е целочислен израз, който ви позволява да дефинирате прецизността на връщаната стойност. Тази стойност определя мащаба (т.е. броя на цифрите вдясно от десетичния знак).

Пример

Ето пример за употреба:

SELECT DATETIME2FROMPARTS( 2021, 05, 10, 23, 35, 29, 500, 4 ) AS Result;

Резултат:

+--------------------------+
| Result                   |
|--------------------------|
| 2021-05-10 23:35:29.0500 |
+--------------------------+

Невалидни стойности

Всички аргументи трябва да са валидни стойности. Например, не можете да посочите месец от 13 или стойност на минути от 61.

Ето пример, в който посочвам месечна стойност от 13:

SELECT DATETIME2FROMPARTS( 2021, 13, 10, 23, 35, 29, 500, 4 ) AS Result;

Резултат:

Cannot construct data type datetime2, some of the arguments have values which are not valid.

Брой аргументи

Трябва също да предоставите правилния брой аргументи (8):

SELECT DATETIME2FROMPARTS( 2021, 05, 10 ) AS Result;

Резултат:

The datetime2fromparts function requires 8 argument(s).

Нулеви стойности

Ако предоставите стойност null за някой от първите 7 аргумента, резултатът е NULL:

SELECT DATETIME2FROMPARTS( 2021, 05, 10, NULL, 35, 29, 500, 4 ) AS Result;

Резултат:

+----------+
| Result   |
|----------|
| NULL     |
+----------+

Предоставянето на нулева стойност за 8-ия аргумент (който определя точността/мащаба) обаче води до грешка:

SELECT DATETIME2FROMPARTS( 2021, 05, 10, 23, 35, 29, 500, NULL ) AS Result;

Резултат:

Scale argument is not valid. Valid expressions for data type datetime2 scale argument are integer constants and integer constant expressions.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Производителност на SQL сървър TOP CPU заявка -1

  2. Създайте таблица с компресия в SQL Server (T-SQL)

  3. Първи поглед към новия оценител на мощността на SQL Server

  4. Трябва да предам имена на колони, използвайки променлива в оператора за избор в процедурата на магазин, но не мога да използвам динамична заявка

  5. SQL Server 2012 Service Pack 1 и сборна актуализация 1