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

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

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

Oczywista konsekwencja konwersji daty wartość do data jest to, że tracisz część czasu. Jednak jedną z korzyści jest zmniejszenie rozmiaru pamięci z 8 bajtów do 3 bajtów. Tak czy inaczej, wykonałbyś tę konwersję tylko wtedy, gdy nie potrzebujesz części czasu.

data i godzina typ danych zawiera datę i godzinę z 3-cyfrową częścią ułamkową sekund. Jego dokładność jest zaokrąglana z dokładnością do 0,000, 0,003 lub 0,007 sekundy.

Jednak data typ danych ma dokładność 1 dnia (i nie obejmuje czasu, jak wspomniano).

Przykład 1 – Konwersja niejawna

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

DECLARE 
  @thedatetime datetime, 
  @thedate date;
SET @thedatetime = '2025-05-21 10:15:30.123';
SET @thedate = @thedatetime;
SELECT 
  @thedatetime AS 'datetime',
  @thedate AS 'date';

Wynik:

+-------------------------+------------+
| datetime                | date       |
|-------------------------+------------|
| 2025-05-21 10:15:30.123 | 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ć datetime wartość na datę zmienna.

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

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, aby jawnie przekonwertować między data godzina i data .

DECLARE @thedatetime datetime;
SET @thedatetime = '2025-05-21 10:15:30.123';
SELECT 
  @thedatetime AS 'datetime',
  CAST(@thedatetime AS date) AS 'date';

Wynik:

+-------------------------+------------+
| datetime                | date       |
|-------------------------+------------|
| 2025-05-21 10:15:30.123 | 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 @thedatetime datetime;
SET @thedatetime = '2025-05-21 10:15:30.123';
SELECT 
  @thedatetime AS 'datetime',
  CONVERT(date, @thedatetime) AS 'date';

Wynik:

+-------------------------+------------+
| datetime                | date       |
|-------------------------+------------|
| 2025-05-21 10:15:30.123 | 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. Zmień nazwę kolumny SQL Server 2008

  2. Jak znaleźć wszystkie zależności tabeli na serwerze sql

  3. Jak korzystać z Projektanta zapytań w SQL Server

  4. Jak dodać kolumnę obliczeniową w tabeli SQL Server — samouczek SQL Server / T-SQL, część 47

  5. Różnica między tabelą DELETE i TRUNCATE w SQL Server