linq to Entity 时间模糊查询的问题

o_Sara 2012-04-13 03:10:02
数据库中有A字段 DateTime类型
存储的是 年月日 时分秒

问题:
页面中输入 年月日 即模糊匹配 字段A 并返回所有包含此年月日的数据。

例如:
数据库中有以下数据
2011-01-01 12:02:45
2011-01-02 12:02:45
2011-01-01 12:02:45
2011-01-03 12:02:45

页面搜索输入: 2011-01-01 即返回
2011-01-01 12:02:45
2011-01-01 12:02:45
...全文
551 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
xiao52yanwei 2013-04-25
  • 打赏
  • 举报
回复
引用 1 楼 q107770540 的回复:
C# code?1var query=db.TableName.ToList().Where(d=>d.A.ToString().Contains("2011-01-01"));
中国软件发展部起来,就因为有这些人,回答别人问题,自己不实践,随便说说,还是高手
q107770540 2013-04-25
  • 打赏
  • 举报
回复
引用 11 楼 xiao52yanwei 的回复:
引用 1 楼 q107770540 的回复:C# code?1var query=db.TableName.ToList().Where(d=>d.A.ToString().Contains("2011-01-01")); 中国软件发展部起来,就因为有这些人,回答别人问题,自己不实践,随便说说,还是高手
幼稚,仔细看看楼主的问题和在7L的补充,只针对楼主帖子中的问题,我在1L的回答是没有问题的。 只说不干,而且连汉字都会打错别字,就你这样的人,能让中国软件发展起来?
o_Sara 2012-04-13
  • 打赏
  • 举报
回复
[Quote=引用 9 楼 claymore1114 的回复:]

C# code

DateTime? startTime =new DateTime(2011,1,1);
var query = db.TableName.Where(w => System.Data.Objects.EntityFunctions.DiffDays(w.A, startTime) == 0);
[/Quote]

我也用这个实现。准备来结贴呢。呵呵 都是牛人,分少一人一半 不要见怪啊
claymore1114 2012-04-13
  • 打赏
  • 举报
回复

DateTime? startTime =new DateTime(2011,1,1);
var query = db.TableName.Where(w => System.Data.Objects.EntityFunctions.DiffDays(w.A, startTime) == 0);
o_Sara 2012-04-13
  • 打赏
  • 举报
回复
LINQ to Entities does not recognize the method 'System.String ToString(System.String)' method, and this method cannot be translated into a store expression.


。。。EF 不能识别。
o_Sara 2012-04-13
  • 打赏
  • 举报
回复
真的很感谢你Tim,
可是可能是我没说清楚。
搜索值 为DateTime?类型。并不是数据库中的字段
q107770540 2012-04-13
  • 打赏
  • 举报
回复
var query=db.TableName.ToList().Where(d=>d.A.HasValue&&d.A.Value.ToString("yyyy-MM-dd").Contains("2011-01-01"));
o_Sara 2012-04-13
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 的回复:]

你也可以尝试这个方法:

System.Data.Linq.SqlClient.SqlMethods.Like()
[/Quote]

这个方法我刚也试过。
o_Sara 2012-04-13
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 的回复:]

C# code
var query=db.TableName.ToList().Where(d=>d.A.ToString().Contains("2011-01-01"));
[/Quote]
startTime 为 DateTime? 类型的
o_Sara 2012-04-13
  • 打赏
  • 举报
回复
DateTime 为数据库字段 startTime 为搜索值
query = query.Where(_ => _.DateTime == startTime);

q107770540 2012-04-13
  • 打赏
  • 举报
回复
你也可以尝试这个方法:

System.Data.Linq.SqlClient.SqlMethods.Like()
q107770540 2012-04-13
  • 打赏
  • 举报
回复
var query=db.TableName.ToList().Where(d=>d.A.ToString().Contains("2011-01-01"));

8,497

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 LINQ
社区管理员
  • LINQ
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧