在 ServiceStack 的 Ormlite 中处理日期和日期时间

Handling dates and datetimes in ServiceStack's Ormlite

我正在使用 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.DateEvent_Date.toString("MM/dd/yyyy") 等。但这不起作用,因为 OrmLite 不能很好地将这些类型的转换转换为 Oracle。例如,当我做 Event_Date.toString("MM/dd/yyyy") 时,OrmLite 将其转换为 Oracle 中的 varchar(1000),但有点忘记传递字符串格式。

有什么办法可以在不使用原始 sql 的情况下解决这个问题吗?

您可以简单地将 1 天添加到今天,然后使用 && 运算符 select 所有具有正确日期部分的 Event_Date,而不考虑时间部分

 var Tomorrow = Today.AddDays(1);
 var events = db.From<Event>()
                .Where(row => row.Event_Date >= Today &&
                              row.Event_Date < Tomorrow);