LINQ字符串向datetime 转换时失败的处理方法
程序员文章站
2024-03-02 18:13:52
今天在使用linq时,由于数据库中的时间保存的是varchar()格式,查询时需要比较时间先后,于是使用了:
复制代码 代码如下:from j in system.jhz...
今天在使用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"时,发现查询正常,有效。
上一篇: 深度剖析Java中的内存原型及工作原理