2011-11-16 61 views
0

在linq我如何可以差異日期,就像我們使用 datediff(mm,getdate(),getdate())= 0 現在我該怎麼寫LINQ,任何機構都可以幫助我感謝你。如何僅比較linq中的日期?

+0

我不知道如果我理解正確的話,但是你可以通過調用年,月,日提取的日期部分,對datetime對象等方法(見http://msdn.microsoft.com/en-us /library/system.datetime.aspx)。 – Dennis

回答

1

您可以使用此代碼爲C#

  DateTime d1 = myDate1; 
      DateTime d2 = myDate2; 
      TimeSpan t1 = d2.Subtract(d1); 
      totalDays = t1.Days; 
1

比較使用LINQ兩個日期沒有什麼特別的Linq中有關日期和時間處理,所以我們應該看看普通的.Net設施。

在C#甲DateTime是一個日期和時間。

得到的只是在C#中的日期部分,試試這個:

var now = DateTime.UtcNow; // or DateTime.Now for local time/day 
DateTime today = now.Date; 

這會給你的日期和時間當天午夜。

如果你想獲得兩個DateTime對象之間在天的區別:

public TimeSpan DiffDates(DateTime d1, DateTime d2) 
{ 
    return d1.Date - d2.Date; 
} 

// ... 

if(DiffDates(dateTime1, dateTime2) == TimeSpan.Zero) 
{ 
    // ... 
} 

或者你可以直接檢查日期是平等的:

if(dateTime1.Date == dateTime2.Date) 
{ 
    // ... 
} 

如果跳過.Date財產,那麼你會得到不正確的結果。

2

我想這是你想要什麼:

var query = from entity in entities 
      where entity.SomeDateTime.Date == anotherDateTime.Date 
      select entity; 

此只比較日期,而不是時間。