Çağrımızın çağrı tarihlerine göre kaç kez temasa geçtiğini sorgulamak istediğim bir sorgu yazıyorum. Yeterince kolay görünüyor, ancak iletişim tarihi alanı bir datetime alanı olduğundan, zaman alacağım, bu yüzden kişi tarihine göre (zaman) gruplandığında, her iletişim tarihi örneğinin bir '1' sayısı vardır. Yani, zaman olmadan sadece tarihle gruplamak istiyorum. Aşağıda ben veritabanını sorgulamak için kullanın ifadesidir:Bir LINQ sorgusunda zaman olmadan geri dönüş tarihleri
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);
denedim
h.contact_dt.ToShortDateString()
kullanmak Fakat SQL ToShortDateString nereden biliyor beri bu işe yaramazsa(). Herhangi bir düşünce büyük beğeni topluyor.
Teşekkürler!
DÜZENLEME: Ben hüküm yüzden tüm 400K kayıtları alamadım tarih toplayıcı ve bir ekleme kadar
sökünüz (50) alıyorum kayıt sayısını sınırlamak amacıyla getirilmiştir. ;)
@Jon Skeet, bir DateTime (SQL) için varsayılan tür bir DateTime (.NET) – msarchet
Tümünün listesi için http://msdn.microsoft.com/en-us/library/bb882657.aspx adresine bakın. LINQ to SQL –
@Hightechrider için desteklenen DateTime yöntemleri: Bu harika, teşekkürler. Daha önce bilmiyordum. Bağlantıyı tanıtmak için düzenleyecek ... –