首页 新闻 会员 周边 捐助

Linq表达式 日期查询

0
悬赏园豆:10 [已解决问题] 解决于 2014-07-07 15:24

一个日期字段记录数据插入的时间,现在我想查询当前日期的近3个月内的数据

我写了一个很笨的语句出来,想优化

琹。的主页 琹。 | 初学一级 | 园豆:172
提问于:2014-07-07 12:14
< >
分享
最佳答案
0

你用C#算出三个月前的时间, 再linq其实不算笨。

收获园豆:5
undefined | 小虾三级 |园豆:898 | 2014-07-07 12:16

我是截取数据库里字段里面的月,再去当前时间的,相减看大不大于3,是很笨

琹。 | 园豆:172 (初学一级) | 2014-07-07 12:20

而且,如果是1、2月份也不好搞的

琹。 | 园豆:172 (初学一级) | 2014-07-07 12:20

@琹。: 不用这样啊。 你用DateTime.Now.AddMonth(-3)拿出个三个月前的时间, 

比这个大, 比现在小, 就行了。 

undefined | 园豆:898 (小虾三级) | 2014-07-07 12:23

@undefined: 关键就是大小比较的SQL语句吧?不管是传当前时间还是三个月之前的时间,到SQL语句这一层都是要进行时间的大小比较,她认为她现在的比较方式不科学。

飞扬的尘埃 | 园豆:1318 (小虾三级) | 2014-07-07 12:26

@飞扬的尘埃: 看来我又想复杂了

琹。 | 园豆:172 (初学一级) | 2014-07-07 12:38
其他回答(3)
0

自己计算出时间,然后用大于小于来判断,不要在字段上运算

收获园豆:2
吴瑞祥 | 园豆:29449 (高人七级) | 2014-07-07 12:28

是的,谢谢

支持(0) 反对(0) 琹。 | 园豆:172 (初学一级) | 2014-07-07 12:38
0

直接给两个时间区间即可!

收获园豆:2
幻天芒 | 园豆:37207 (高人七级) | 2014-07-07 12:36
0

var start=DateTime.Parse(DateTime.Now.AddMonth(-3).ToString("yyyy-MM-dd"));

var end=DateTime.Parse(DateTime.Now.AddDays(1).ToString("yyyy-MM-dd"));

ctx.Tables.Where(t=>t.CreateTime>=start && t.CreateTime<=end)

这样做可以搞定的。

收获园豆:1
Alex_QY1987 | 园豆:1888 (小虾三级) | 2014-07-07 14:02

3q,已解决

支持(0) 反对(0) 琹。 | 园豆:172 (初学一级) | 2014-07-07 15:24
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册