问题描述
我试图使用简单的等式在Postgresql表中查找Date类型的列中的记录。我正在使用DateTime属性(不是noda)
我确信我缺少一些非常基本的东西,因为尝试了许多不同的方法后我没有成功。
var m = new Model {
dateprop = default(DateTime)
}
var result = await context.Model
.Where(a => a.dateprop == m.dateprop)
.ToListAsync()
在数据库中,该列中有很多记录,其日期为0001-01-01。
此外,我尝试过:
- .Where(a => a.dateprop == m.dateprop.Date)
- .Where(a => a.dateprop.Date == m.dateprop.Date)
- .Where(a => a.dateprop.Date == m.dateprop)
- .Where(a => a.dateprop.Equals(m.dateprop))和以上所有品种
然后,如果我得到EF为.Where(a => a.dateprop.Date == m.dateprop.Date)
生成的查询并从sql客户端运行它,它将工作并返回所有记录。
在where子句中定义日期相等条件的正确方法是什么?
修改 抱歉,我已经编辑了这个问题,很抱歉。最初,代码显示为:
var m = new Model {
dateprop = DateTime.Parse("1970-01-01")
}
var result = await context.Model
.Where(a => a.dateprop == m.dateprop)
.ToListAsync()
解决方法
以下可运行代码示例有效。我会仔细检查数据库,以查看其中到底有什么内容,以及它是否与filename.createNewFile();
String cmd = "logcat -d -t '08-14 11:58:20.211' -v time -f" + filename.getAbsolutePath() + " | grep " + PsLog.LOG_PREFIX;
Runtime.getRuntime().exec(cmd);
相对应。如果您仍然确信存在问题,请尝试调整以下代码以使其显示。
default(DateTime)