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

Konwertuj „datetime2” na „date” w SQL Server (przykłady T-SQL)

Ten artykuł zawiera przykłady konwersji data/godzina2 wartość na datę wartość w SQL Server.

Po przekonwertowaniu data/godzina2 wartość na datę typ danych, tracisz część czasu. Jednak zmniejszasz również rozmiar pamięci z 7 do 9 bajtów do 3 bajtów. W każdym razie wykonałbyś tę konwersję tylko wtedy, gdy nie potrzebujesz części czasu.

data/godzina2 typ danych zawiera datę i godzinę z częścią ułamkową sekund od 0 do 7 (zależy to od tego, ile sekund ułamkowych jest do niego przypisanych). Jego dokładność wynosi 100 nanosekund.

data z drugiej strony typ danych nie obejmuje czasu i ma dokładność 1 dnia.

Przykład 1 – Konwersja niejawna

Oto przykład niejawnej konwersji między datetime2 i data .

DECLARE 
  @thedatetime2 datetime2, 
  @thedate date;
SET @thedatetime2 = '2025-05-21 10:15:30.1234567';
SET @thedate = @thedatetime2;
SELECT 
  @thedatetime2 AS 'datetime2',
  @thedate AS 'date';

Wynik:

+-----------------------------+------------+
| datetime2                   | date       |
|-----------------------------+------------|
| 2025-05-21 10:15:30.1234567 | 2025-05-21 |
+-----------------------------+------------+

Jest to niejawna konwersja, ponieważ nie używamy funkcji konwersji (takich jak te poniżej) do jawnej konwersji. W tym przypadku SQL Server wykonuje niejawną konwersję za kulisami, gdy próbujemy przypisać datetime2 wartość na datę zmienna.

Tutaj widzimy, że data wartość zawiera tylko datę (bez składnika czasu).

W tym przykładzie datetime2 value używa domyślnej precyzji (co daje 7 miejsc po przecinku). Można to zredukować do dowolnej liczby, a wynik konwersji byłby taki sam.

DECLARE 
  @thedatetime2 datetime2(0), 
  @thedate date;
SET @thedatetime2 = '2025-05-21 10:15:30.1234567';
SET @thedate = @thedatetime2;
SELECT 
  @thedatetime2 AS 'datetime2',
  @thedate AS 'date';

Wynik:

+---------------------+------------+
| datetime2           | date       |
|---------------------+------------|
| 2025-05-21 10:15:30 | 2025-05-21 |
+---------------------+------------+

Przykład 2 – Jawna konwersja za pomocą CAST()

Oto przykład jawnej konwersji. W tym przypadku używam CAST() działać bezpośrednio w SELECT oświadczenie o jawnej konwersji między datetime2 i data .

DECLARE @thedatetime2 datetime2(4);
SET @thedatetime2 = '2025-05-21 10:15:30.1234';
SELECT 
  @thedatetime2 AS 'datetime2',
  CAST(@thedatetime2 AS date) AS 'date'; 

Wynik:

+--------------------------+------------+
| datetime2                | date       |
|--------------------------+------------|
| 2025-05-21 10:15:30.1234 | 2025-05-21 |
+--------------------------+------------+

Przykład 3 – Jawna konwersja przy użyciu funkcji CONVERT()

Oto przykład jawnej konwersji przy użyciu CONVERT() funkcja zamiast CAST() .

DECLARE @thedatetime2 datetime2(4);
SET @thedatetime2 = '2025-05-21 10:15:30.1234';
SELECT 
  @thedatetime2 AS 'datetime2',
  CONVERT(date, @thedatetime2) AS 'date'; 

Wynik:

+--------------------------+------------+
| datetime2                | date       |
|--------------------------+------------|
| 2025-05-21 10:15:30.1234 | 2025-05-21 |
+--------------------------+------------+

  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 Server 2016:Widok projektanta

  2. Jak serializować duży wykres obiektu .NET do obiektu BLOB programu SQL Server bez tworzenia dużego bufora?

  3. Wyślij e-mail z wyzwalacza w SQL Server (T-SQL)

  4. Jak utworzyć i wypełnić tabelę w jednym kroku w ramach operacji importu CSV?

  5. JDBC SQLServerException:Ten sterownik nie jest skonfigurowany do zintegrowanego uwierzytelniania.