Sqlserver
 sql >> Baza danych >  >> RDS >> Sqlserver

DATETIME2FROMPARTS() Przykłady w SQL Server (T-SQL)

W SQL Server DATETIME2FROMPARTS() funkcja działa podobnie do DATETIMEFROMPARTS() funkcja, z tą różnicą, że przyjmuje 8 argumentów i zwraca datetime2 wartość. DATETIMEFROMPARTS() z drugiej strony funkcja przyjmuje tylko 7 argumentów i zwraca datę-godzinę wartość.

Zasadniczo podajesz wszystkie części daty/godziny, a ta funkcja zwróci datetime2 wartość na podstawie dostarczonych części.

Składnia

Po pierwsze, oto składnia:

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

Gdzie każdy z pierwszych 7 argumentów jest wyrażeniem całkowitym, które określa tę część daty. Na przykład year jest liczbą całkowitą, która określa część daty związaną z rokiem.

8. argument jest wyrażeniem całkowitym, które umożliwia zdefiniowanie dokładności zwracanej wartości. Ta wartość określa skalę (tj. liczbę cyfr na prawo od miejsca dziesiętnego).

Przykład

Oto przykład użycia:

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

Wynik:

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

Nieprawidłowe wartości

Wszystkie argumenty muszą być prawidłowymi wartościami. Na przykład nie możesz określić miesiąca 13 lub wartości minut 61.

Oto przykład, w którym określam wartość 13 miesiąca:

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

Wynik:

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

Liczba argumentów

Musisz także podać poprawną liczbę argumentów (8):

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

Wynik:

The datetime2fromparts function requires 8 argument(s).

Wartości puste

Jeśli podasz wartość null dla dowolnego z pierwszych 7 argumentów, wynikiem będzie NULL:

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

Wynik:

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

Jednak podanie wartości null dla ósmego argumentu (który określa precyzję/skalę) powoduje błąd:

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

Wynik:

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. Jak migrować zadania SQL Server z jednej instancji SQL Server do innej?

  2. Czy mogę mieć klucz obcy odwołujący się do kolumny w widoku w SQL Server?

  3. na czym polega problem z AttachDbFilename?

  4. Jak dowiedzieć się, co blokuje moje stoły?

  5. Konwertuj z DateTime na INT