首页 新闻 会员 周边 捐助

Linq To Entity 对Date使用Like

0
悬赏园豆:10 [已关闭问题] 关闭于 2012-11-14 10:05

目前业务上需要对时间进行搜索,比如输入“2012-05”,就能搜出“2012-05-07”,"2012-05-01"等等数据。

在MySql数据中可以直接写SQL语句:Date Like '%2012-05%',可是在Linq To Entity中需要怎么写才能让他生成这个SQL??

Xiongpq的主页 Xiongpq | 菜鸟二级 | 园豆:293
提问于:2012-08-20 13:32
< >
分享
所有回答(6)
0

(1)、where m.DateTime.IndexOf("2012-05")>-1 从左开始判断,过滤起始是"2012-05"的。

(2)、where m.DateTime.Contains("2012-05") 这个相当于SQL中的'%内容%'

你加上这个试试看行不行

jerry-Tom | 园豆:4077 (老鸟四级) | 2012-08-20 13:57

DateTime 根本没有IndexOf,Contains这些方法....

支持(0) 反对(0) Xiongpq | 园豆:293 (菜鸟二级) | 2012-08-20 16:00

@Xiongpq: 真不知道怎么说你才好,上面语句中的  DateTime 是字段,我只是打了个比方。你换成字段试试。

支持(0) 反对(0) jerry-Tom | 园豆:4077 (老鸟四级) | 2012-08-20 18:17

@百灵: 我明白你的意思,我就是说换成DateTime类型的字段不行

支持(0) 反对(0) Xiongpq | 园豆:293 (菜鸟二级) | 2012-08-21 08:30
0

.DateTime.Contains("2012-05")

zhangweiwen | 园豆:904 (小虾三级) | 2012-08-20 15:08
0

方法1:分开比较m.DateTime.year ==XX and m.DateTime.month==XX

方法2取回来到本地,在本地后就可以用IndexOf,Contains这些方法

 

我也是刚学linq,只作参考啊

何潮 | 园豆:228 (菜鸟二级) | 2012-08-20 17:50

1.没法判断用户输入的是年还是月;

2.我的数据量非常大,需要在数据库中分页,如果都取回本地,资源消耗很大;

支持(0) 反对(0) Xiongpq | 园豆:293 (菜鸟二级) | 2012-08-21 09:49
0

1. 是把这个2012-05在c#中转换成字符串,然后再用上面的2个方法比较

chenping2008 | 园豆:9836 (大侠五级) | 2012-08-21 06:29
0

where m.DateTime > new DateTime( 2012, 5, 1)

gunsmoke | 园豆:3592 (老鸟四级) | 2012-08-21 09:48

没法判断用户输入的是年还是月;

支持(0) 反对(0) Xiongpq | 园豆:293 (菜鸟二级) | 2012-08-21 10:13
0

时间判断的话

可以考虑条件写成大于2012-05-01并小于2012-05-31

ERS | 园豆:728 (小虾三级) | 2012-08-21 15:25
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册