欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

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"时,发现查询正常,有效。