带有DateTime字段的C#Linq

时间:2017-03-27 09:57:30

标签: c# linq datetime

我想从我的sql数据库中获取数据,这些数据都来自指定的日期或今天的日期。只需今天的所有数据。字段“Zeitsempel”来自DateTime类型。我找了一些解决方案,发现了这个:

var query =
    from z in context.zeichnungs
    where EntityFunctions.TruncateTime(z.Zeitstempel) == EntityFunctions.TruncateTime(DateTime.Now)
    select z;

我遇到的问题是,当我使用像这样的查询数据时

foreach (zeichnung zeichnung in query)
{
    if (!zeichnung.Status.Equals("gelöscht"))
    {
        zeichnungInDB = new ZeichnungInDB(zeichnung.Zeichnungsnummer, zeichnung.Index, zeichnung.Volante_Index, zeichnung.Dateiendung, zeichnung.Dokumententyp);
        zeichnungen.Add(zeichnungInDB);
    }
}

我得到一个EntityCommandExecutionException。 有人对我的问题有所了解吗?

2 个答案:

答案 0 :(得分:2)

不要对EntityFunctions.TruncateTime生成的内存中值DateTime.Now使用var query = from z in context.zeichnungs where EntityFunctions.TruncateTime(z.Zeitstempel) == DateTime.Today select z; 。请改用DateTime.Today

a,1
b,2
c,4
j,20

答案 1 :(得分:1)

使用DateTime.Today。 DateTime.Today表示当前系统日期,时间部分设置为00:00:00

DateTime.Now表示当前系统日期和时间

了解有关DateTime的更多信息: Choosing Between DateTime, DateTimeOffset, TimeSpan, and TimeZoneInfo