LINQ字符串向datetime 转换时失败的处理方法

  今天在使用LINQ时,由于数据库中的时间保存的是varchar()格式,查询时需要比较时间先后,于是使用了:

  

复制代码 代码如下:

  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,

  }

  可是,使用时却发现数据库报 "从字符串向 datetime 转换时失败"。

  试了很多方法,仍没有用,最终发现,数据库中yearmonth这个字段的字符串保存的是"2013年01月04日",

  当把它改成"2013-01-04"时,发现查询正常,有效。