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

Phương pháp tốt nhất để loại bỏ phần thời gian của datetime trong SQL Server

Nghiêm túc, phương thức a ít sử dụng tài nguyên nhất:

a) select DATEADD(dd, DATEDIFF(dd, 0, getdate()), 0)

Đã được chứng minh là ít sử dụng CPU hơn trong cùng một thời lượng cả triệu hàng bởi ai đó có quá nhiều thời gian trong tay:Cách hiệu quả nhất trong SQL Server để lấy ngày từ ngày + giờ?

Tôi cũng thấy một bài kiểm tra tương tự ở nơi khác với kết quả tương tự.

Tôi thích DATEADD / DATEDIFF vì:

  • varchar có vấn đề về ngôn ngữ / định dạng ngày.
    Ví dụ:Tại sao biểu thức CASE của tôi không xác định?
  • float dựa vào bộ nhớ trong
  • nó mở rộng để hoạt động vào ngày đầu tiên của tháng, ngày mai, v.v. bằng cách thay đổi cơ sở "0"

Chỉnh sửa, tháng 10 năm 2011

Đối với SQL Server 2008+, bạn có thể ĐÚC thành date tức là CAST(getdate() AS date) . Hoặc chỉ sử dụng date kiểu dữ liệu để không có time để loại bỏ.

Chỉnh sửa, tháng 1 năm 2012

Một ví dụ hiệu quả về mức độ linh hoạt của điều này:Cần tính toán bằng con số thời gian hoặc ngày được làm tròn trong máy chủ sql

Chỉnh sửa, tháng 5 năm 2012

Không sử dụng điều này trong mệnh đề WHERE và những điều tương tự mà không cần suy nghĩ:thêm một hàm hoặc CAST vào một cột sẽ làm mất hiệu lực sử dụng chỉ mục. Xem số 2 tại đây Các lỗi lập trình SQL phổ biến

Bây giờ, điều này có một ví dụ về các phiên bản tối ưu hóa SQL Server sau này quản lý CAST cho đến nay một cách chính xác, nhưng nói chung đó sẽ là một ý tưởng tồi ...

Chỉnh sửa, tháng 9 năm 2018, cho datetime2

DECLARE @datetime2value datetime2 = '02180912 11:45' --this is deliberately within datetime2, year 0218
DECLARE @datetime2epoch datetime2 = '19000101'

select DATEADD(dd, DATEDIFF(dd, @datetime2epoch, @datetime2value), @datetime2epoch)


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Sự khác biệt giữa bảng tạm thời và biến bảng trong SQL Server là gì?

  2. Cách tăng tốc máy chủ SQL của bạn bằng cách sử dụng giám sát hiệu suất cơ sở dữ liệu

  3. Cách khắc phục “Chỉ có thể chỉ định một biểu thức trong danh sách chọn…” trong SQL Server

  4. Cách IIF () hoạt động trong SQL Server

  5. Khám phá SQL Server 2014 CHỌN VÀO song song