Tôi đang viết truy vấn nơi tôi muốn đếm số lần trung tâm cuộc gọi của chúng tôi được liên hệ theo ngày. Có vẻ dễ dàng, nhưng vì trường ngày liên lạc là trường ngày giờ tôi nhận được thời gian, vì vậy khi tôi nhóm theo ngày liên hệ (thời gian), mỗi trường hợp ngày liên hệ có số '1'. Vì vậy, tôi muốn nhóm theo ngày tháng mà không có thời gian. Dưới đây là biểu hiện tôi sử dụng để truy vấn cơ sở dữ liệu:Trả lại ngày không có thời gian trong truy vấn LINQ
MyDataContext db = new MyDataContext();
var items = (from h in db.ContactHistories
group h by h.contact_dt into g
orderby g.Key
select new
{
contact_dt = g.Key,
item_count = g.Count()
}).Take(50);
Tôi đã cố gắng sử dụng
h.contact_dt.ToShortDateString()
Nhưng điều đó không làm việc kể từ SQL không biết về ToShortDateString(). Ý kiến nào cũng được hoan nghênh.
Cảm ơn!
EDIT:
Các .Take (50) được đặt ra để hạn chế số lượng hồ sơ tôi nhận được cho đến khi tôi thêm hái chà là và một mệnh đề where vì vậy tôi không có được tất cả 400K hồ sơ. ;)
@Jon Skeet, kiểu mặc định cho một DateTime (SQL) là một DateTime (.NET) – msarchet
Xem http://msdn.microsoft.com/en-us/library/bb882657.aspx để biết danh sách tất cả phương thức DateTime được hỗ trợ cho LINQ to SQL –
@Hightechrider: Thật tuyệt vời, cảm ơn. Không biết về nó trước đây. Sẽ chỉnh sửa để quảng bá liên kết ... –