Sqlserver
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Sqlserver

Chuyển đổi ‘datetime’ thành ‘date’ trong SQL Server (Ví dụ T-SQL)

Bài viết này chứa các ví dụ về chuyển đổi ngày giờ giá trị của một ngày tháng giá trị trong SQL Server.

Hệ quả rõ ràng của việc chuyển đổi ngày giờ giá trị đến ngày là bạn mất phần thời gian. Tuy nhiên, một lợi ích là bạn giảm kích thước lưu trữ từ 8 byte xuống 3 byte. Dù bằng cách nào, bạn sẽ chỉ thực hiện chuyển đổi này nếu bạn không cần phần thời gian.

Ngày giờ kiểu dữ liệu bao gồm ngày và giờ, với phần giây phân số 3 chữ số. Độ chính xác của nó được làm tròn đến gia số .000, .003 hoặc .007 giây.

Tuy nhiên, ngày loại dữ liệu có độ chính xác là 1 ngày (và nó không bao gồm thời gian, như đã đề cập).

Ví dụ 1 - Chuyển đổi ngầm định

Dưới đây là một ví dụ về chuyển đổi ngầm định giữa ngày giờ ngày .

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

Kết quả:

+-------------------------+------------+
| datetime                | date       |
|-------------------------+------------|
| 2025-05-21 10:15:30.123 | 2025-05-21 |
+-------------------------+------------+

Đây là một chuyển đổi ngầm định bởi vì chúng tôi không sử dụng một hàm chuyển đổi (như những hàm bên dưới) để chuyển đổi nó một cách rõ ràng. Trong trường hợp này, SQL Server thực hiện một chuyển đổi ẩn đằng sau hậu trường khi chúng tôi cố gắng chỉ định datetime giá trị của một ngày tháng biến.

Trong ví dụ này, chúng ta có thể thấy rằng ngày giá trị chỉ bao gồm ngày (không có thành phần thời gian).

Ví dụ 2 - Chuyển đổi rõ ràng bằng CAST ()

Dưới đây là một ví dụ về chuyển đổi rõ ràng. Trong trường hợp này, tôi sử dụng CAST() hoạt động trực tiếp trong SELECT tuyên bố để chuyển đổi rõ ràng giữa datetime ngày .

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

Kết quả:

+-------------------------+------------+
| datetime                | date       |
|-------------------------+------------|
| 2025-05-21 10:15:30.123 | 2025-05-21 |
+-------------------------+------------+

Ví dụ 3 - Chuyển đổi rõ ràng bằng CONVERT ()

Dưới đây là một ví dụ về chuyển đổi rõ ràng bằng cách sử dụng CONVERT() hàm thay vì CAST() .

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

Kết quả:

+-------------------------+------------+
| 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. Làm cách nào để CẬP NHẬT từ một CHỌN trong SQL Server?

  2. Bạn có đang đo hiệu suất máy chủ SQL bằng các số liệu này không?

  3. Tạo một ngày từ tháng và năm với T-SQL

  4. Sử dụng SQL Server làm kho lưu trữ hình ảnh

  5. Xuất dữ liệu từ SQL Server sang Excel và tệp Văn bản thông qua gói SSIS