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

Làm cách nào để truy vấn trường DATETIME chỉ sử dụng ngày tháng trong Microsoft SQL Server?

phạm vi sử dụng hoặc hàm DateDiff

 select * from test 
 where date between '03/19/2014' and '03/19/2014 23:59:59'

hoặc

 select * from test 
 where datediff(day, date, '03/19/2014') = 0

Các tùy chọn khác là:

  1. Nếu bạn có quyền kiểm soát lược đồ cơ sở dữ liệu và bạn không cần dữ liệu thời gian, hãy lấy nó ra.

  2. hoặc, nếu bạn phải giữ nó, hãy thêm thuộc tính cột được tính toán có phần thời gian của giá trị ngày bị loại bỏ ...

Alter table Test Add DateOnly As DateAdd(day, datediff(day, 0, date), 0)

hoặc trong các phiên bản SQL Server mới hơn ...

Alter table Test Add DateOnly As Cast(DateAdd(day, datediff(day, 0, date), 0) as Date)

sau đó, bạn có thể viết truy vấn của mình đơn giản như sau:

select * from test 
where DateOnly = '03/19/2014'


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Cách khắc phục “Tên tương quan phải được chỉ định cho tập hợp hàng loạt trong mệnh đề from.” trong SQL Server

  2. Hàm tách tương đương trong T-SQL?

  3. SQL Server:Cột thành hàng

  4. Cách bỏ tất cả các Khóa chính khỏi tất cả các bảng trong Cơ sở dữ liệu SQL Server - Hướng dẫn SQL Server / TSQL Phần 65

  5. SQL động so với thủ tục được lưu trữ