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

Ngày mà không có thời gian

Trong các phiên bản <2008 (dựa trên các nhận xét khác cho một số câu trả lời, tôi tin rằng bạn đang chạy), cách hiệu quả nhất là giữ nó dưới dạng loại datetime và sử dụng phép toán ngày để tránh chuyển đổi chuỗi.

SELECT DATEADD(DAY, DATEDIFF(DAY, '20000101', purchase_time), '20000101') 
  FROM dbo.table;

CHỈNH SỬA

Nếu bạn muốn ngày chỉ dành cho mục đích hiển thị, không phải để tính toán hoặc nhóm, điều đó có thể được xử lý tốt nhất tại máy khách. Bạn có thể làm điều đó trong SQL đơn giản bằng cách nói:

SELECT dt = CONVERT(CHAR(10), purchase_time, 120)
  FROM dbo.table;


  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 thế nào để thiết lập và lập chỉ mục trên hai cột của biến bảng được khai báo T-SQL?

  2. SQL JOIN so với IN hiệu suất?

  3. Tạo SQL Cập nhật để thay đổi thứ tự của một mặt hàng?

  4. Trường XML - Truy vấn

  5. Tại sao tôi nhận được nhà cung cấp Dữ liệu hoặc dịch vụ khác trả về trạng thái E_FAIL? SQL Native Client