我正在使用Ormlite.Oracle
做类似的事情:
using (var db = dbFactory.Open())
{
var events = db.From<Event>()
.Where(row => row.Event_Date == Today);
List<Event> results = db.Select(events);
db.Close();
return results;
}
问题是row.Event_Date
是一个DateTime而Today
只是一个始终在00:00:00结束的日期,所以where子句永远不会匹配。我想将row.Event_Date
转换为日期。我已经尝试了Event_Date.Date
和Event_Date.toString("MM/dd/yyyy")
等等。但这并不起作用,因为OrmLite并没有很好地将这些类型的转换转换为Oracle。例如,当我执行Event_Date.toString("MM/dd/yyyy")
时,OrmLite将其转换为Oracle中的varchar(1000)转换,但有点忘记了传递字符串格式。
有没有办法在不使用原始sql的情况下解决这个问题?
答案 0 :(得分:3)
您可以在今天添加1天,然后使用&amp;&amp;运算符选择具有正确日期部分的所有Event_Date而不考虑时间部分
var Tomorrow = Today.AddDays(1);
var events = db.From<Event>()
.Where(row => row.Event_Date >= Today &&
row.Event_Date < Tomorrow);