今天在使用LINQ時(shí),由于數(shù)據(jù)庫(kù)中的時(shí)間保存的是varchar()格式,查詢(xún)時(shí)需要比較時(shí)間先后,于是使用了:
from j in system.jhzd
where j.dwbm.ToString().Trim() == branchcode.ToString().Trim()
&& Convert.ToDateTime(j.yearmonth.ToString().Trim()).CompareTo(Convert.ToDateTime(timeFrom)) >= 0
&& Convert.ToDateTime(j.yearmonth.ToString().Trim()).CompareTo(Convert.ToDateTime(timeTo)) <= 0
join b in system.t_sys_Branch
on j.dwbm.ToString().Trim() equals b.BranchCode
join c in system.T_CWLB
on j.xmlb.ToString().Trim() equals c.ID
select new
{
BranchName = b.BranchName,
category = c.CWMC,
money = j.je,
comefrom = j.zjly,
time = j.yearmonth,
zhaiyao = j.zhaiyao,
}
可是,使用時(shí)卻發(fā)現(xiàn)數(shù)據(jù)庫(kù)報(bào) "從字符串向 datetime 轉(zhuǎn)換時(shí)失敗"。
試了很多方法,仍沒(méi)有用,最終發(fā)現(xiàn),數(shù)據(jù)庫(kù)中yearmonth這個(gè)字段的字符串保存的是"2013年01月04日",
當(dāng)把它改成"2013-01-04"時(shí),發(fā)現(xiàn)查詢(xún)正常,有效。