Linq to Sql 从数据库中获取今天的日期数据

Linq to Sql get today date only data from db

我无法通过仅比较日期从数据库中获取数据。在 Db InDateTime 中数据类型是 DateTime

using (HatronEntities context = new HatronEntities())
{
     DateTime date = DateTime.Now.Date;
     var AttendData = (from c in context.tbl_CoachMobAttendDetails
                       where c.CoachId == model.Id && c.InDateTime.Value.Date ==date
                       select c).FirstOrDefault();
}

你可以这样试试:

c.InDateTime.Year == date.Year && c.InDateTime.Month == date.Month 
&& c.InDateTime.Day == date.Day

或喜欢

DbFunctions.TruncateTime(c.InDateTime.Value.Date) == date.Date

尝试Like this

c.InDateTime.Value.Date.Year == date.Year &&
c.InDateTime.Value.Date.Month == date.Month &&
c.InDateTime.Value.Date.Day == date.Day
using (HatronEntities context = new HatronEntities())
{
    DateTime date = DateTime.Today;
    DateTime until = date.AddDays(1);
    var AttendData = (from c in context.tbl_CoachMobAttendDetails
                        where c.CoachId == model.Id && 
                        c.InDateTime.Value >= date &&
                        c.InDateTime.Value < until
                        select c).FirstOrDefault();
}

您最初没有说它是 Linq To Entity Framework - 但您说是 Linq To SQL!那么:

using (HatronEntities context = new HatronEntities())
{
    DateTime date = DateTime.Today;
    var AttendData = (from c in context.tbl_CoachMobAttendDetails
                        where c.CoachId == model.Id && 
                        DbFunctions.TruncateTime( c.InDateTime ) == date
                        select c).FirstOrDefault();
}

您可以使用DbFunctions.TruncateTime方法:

DbFunctions.TruncateTime(c.InDateTime.Value.Date) == date.Date