ormlite-servicestack,C#,Datetime,Compare,ormlite Servicestack" /> ormlite-servicestack,C#,Datetime,Compare,ormlite Servicestack" />

C# 如何仅比较ServiceStack或MLite查询中的日期部分

C# 如何仅比较ServiceStack或MLite查询中的日期部分,c#,datetime,compare,ormlite-servicestack,C#,Datetime,Compare,ormlite Servicestack,我需要使用ServiceStack中的OrmLite将DateTime值与DateTime字段进行比较 我已经访问了几个线程,但之前没有对此主题进行任何指定。我使用的Ormlette SQL类似于: Db.Select<Table1>(q => q.Where(x => x.creationDate >= creationDate)); Db.Select(q=>q.Where(x=>x.creationDate>=creationDate)); 为什么不尝试创建

我需要使用ServiceStack中的OrmLite将
DateTime
值与DateTime字段进行比较

我已经访问了几个线程,但之前没有对此主题进行任何指定。我使用的Ormlette SQL类似于:

Db.Select<Table1>(q => q.Where(x => x.creationDate >= creationDate));
Db.Select(q=>q.Where(x=>x.creationDate>=creationDate));

为什么不尝试创建一个poco,如:


公共类表1//或个人示例
{
公共字符串Id{get;set;}
公共字符串名称{get;set;}
公共日期时间Dob{get;set;}
}

然后你可以做:

var creationDate = DateTime.Now.AddDays(-10);
Db.Select<Table1>(q => q.Where(p => p.Dob.Date >= creationDate.Date));
var creationDate=DateTime.Now.AddDays(-10);
Db.Select(q=>q.Where(p=>p.Dob.Date>=creationDate.Date));

您应该为此使用原始sql

大概是这样的:

var query = db.From<Table1>();
var date = query.CreateParam("date", creationDate, dbType: DbType.Date);
query.Params.Add(date);
query.UnsafeWhere("CAST(creationDate AS DATE) =  CAST(@date AS DATE)");
return db.Select(query)
var query=db.From();
var date=query.CreateParam(“日期”,creationDate,dbType:dbType.date);
查询参数添加(日期);
query.UnsafeWhere(“CAST(creationDate AS DATE)=CAST(@DATE AS DATE)”;
返回db.Select(查询)
或者这个:

var date = db.CreateParam("date", creationDate, dbType: DbType.Date);
return db.Select<Table1>("SELECT * FROM Table1 WHERE CAST(creationDate AS DATE) =  CAST(@date AS DATE)", new[] { date });   
var date=db.CreateParam(“日期”,creationDate,dbType:dbType.date);
返回db.Select(“从表1中选择*,其中CAST(creationDate AS DATE)=CAST(@DATE AS DATE)”,new[]{DATE});

p.Dob为空异常将引发