2009-06-30 26 views
5

Tôi đang cố gắng tìm nạp một số bản ghi từ MSSQL DB bằng EntityObject với truy vấn EntitySQL. Trường tôi đang sử dụng để lọc là loại datetime. Truy vấn được tạo dự kiến ​​không có mili giây, cho SQL Server không trả về gì cả. Khi tôi thêm mili giây, tôi nhận được kết quả.SQL thực thể so sánh datetime mà không có mili giây

Làm cách nào tôi có thể sử dụng EntitySQL để nhận kết quả mà không có mili giây?

cảm ơn.

Trả lời

3

Nó không phải tao nhã, nhưng điều này đã làm việc cho tôi:

foos.SingleOrDefault(f => f.EntryDate.Year == bar.EntryDate.Year && 
          f.EntryDate.Month == bar.EntryDate.Month && 
          f.EntryDate.Day == bar.EntryDate.Day && 
          f.EntryDate.Hour == bar.EntryDate.Hour && 
          f.EntryDate.Minute == bar.EntryDate.Minute && 
          f.EntryDate.Second == bar.EntryDate.Second); 
1

Một cách để làm là tạo chế độ xem dữ liệu của bạn, trong đó cột ngày giờ của bạn được chuyển đổi thành smalldatetime (không có mili giây).

Sau đó, thêm chế độ xem vào mô hình khung thực thể của bạn và đọc dữ liệu thông qua chế độ xem.

Hope this helps

Shiraz

0

Giải pháp tôi tìm thấy là vào ngày lấy cửa hàng ban đầu như .ToBinary() sau đó khi bạn lọc chỉ làm DateTime mới (binaryValue) và so sánh với điều đó.

Các vấn đề liên quan