我想将字符串转换为dateTime,然后比较它们i'm trying to compare 2 datetime stored in an sqllite database, but i still get the error "no such fonction converttodatetime" here is my code:
from x in db.Table<FicheTechnique>()
where Convert.ToDateTime(x.FirstDate) <= Convert.ToDateTime(newDate)
select x;
答案 0 :(得分:0)
这是你需要做的事情
var data = from r in dt.AsEnumerable()
where Convert.ToDateTime(r["fld name"]) <= Convert.ToDateTime(newDate)
select r;
您的问题是,在处理数据表时需要执行dt.AsEnumerable()
。您的data
将是可枚举的行集合。
完整示例:
DataTable dt = new DataTable();
dt.Columns.Add("a");
dt.Columns.Add("b");
dt.Columns.Add("c");
dt.Rows.Add("1", "01/01/2001", "01:01:2001");
var p = from r in dt.AsEnumerable() where
Convert.ToDateTime(r["b"]) == Convert.ToDateTime("01/01/2001")
select r;
System.Diagnostics.Debug.WriteLine(p.ToList()[0][0]);
作品:Convert.ToDateTime(r["b"])
失败Convert.ToDateTime(r["c"])
答案 1 :(得分:0)
基本上这意味着SqLite不理解Convert.ToDateTime函数。这是在游戏中的延迟执行。
您可以在过滤结果之前先强制执行。仅在表不大时使用,因为它将获得所有重新记录,然后进行过滤。
尝试以下方法:
from x in db.Table<FicheTechnique>().ToList()
.Where Convert.ToDateTime(x.FirstDate) <= Convert.ToDateTime(newDate)
.Select x;