2011-05-20 18 views
14

Herkesin her zaman zaman bölümünü yok sayar gibi görünüyor, ama tarihi göz ardı ederek iki kez nasıl karşılaştırırsınız? Eğer onları sadece TIME olarak karşılaştırırsak, hala en eski tarihi tercih ediyor gibi görünüyor.İki DateTime açık olduğunda, yalnızca tarih dikkate alınmaz mı?

(12/02/2004 9:00)> (12/02/2011 8:24) - bu doğru olurdu.

Aşağıdaki kod çalışır ancak saat ve dakikaları ayrı ayrı karşılaştırarak çalı etrafında biraz dayak hisseder.

var results = from x in dataContext.GetTable<ScheduleEntity>()       
       where x.LastRunDate < date.Date 
       && x.reportingTime.Hour <= date.Hour 
       && x.reportingTime.Minute <= date.Minute 
       && x.reportingFequency.Substring(position, 1) == scheduled 
       select x; 

Ayrıca yapıyoruz nedeni zaman karşılaştırmak için bizim SQL TIME alamadım çünkü this aynı olurdu ama LINQ bir "dönüşüm hatası bigint için TIME" dönüyor diyor olduğunu. aşağıdaki gibi

cevap

31

DateTime bir TimeOfDayProperty vardır, iki tarihlerde kez karşılaştırmak için kullanabilir:

var one = DateTime.Now.AddHours(1); 
var two = DateTime.Now; 
var diff = one.TimeOfDay - two.TimeOfDay; 
İlgili konular