如何仅比较linq的日期?

时间:2011-11-16 07:38:17

标签: linq

在linq中,我如何区分日期,就像我们使用的sql一样          DATEDIFF(毫米,GETDATE(),GETDATE())= 0   现在我怎么能用linq写的,任何身体都可以帮助我谢谢你。

3 个答案:

答案 0 :(得分:2)

我认为这就是你想要的:

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

这只比较日期,而不是时间。

答案 1 :(得分:1)

您可以使用此代码在C#

中使用linq比较两个日期
            DateTime d1 = myDate1;
            DateTime d2 = myDate2;
            TimeSpan t1 = d2.Subtract(d1);
            totalDays = t1.Days;

答案 2 :(得分:1)

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属性,则会得到错误的结果。