Entity Framework 1.0中的日期比较

最近一直都觉Entity Framework挺好用的,不过今天碰到一个无奈的问题,我需要在查询中取出距今2周内、一个月内的数据。这本应该是很简单的也是很常见的操作,在Sql Server中DateDiff函数以及.NET中的TimeSpan结构就是做这个事情的,然而,郁闷的是,在EF 1.0中,Linq to Entity竟然不支持这种直接的操作,只支持从一个DateTime结构中利用Year、Month等方法获取年的值、月的值等等这种单值。咋办呢?只能剑走偏锋,对于我的这次操作,需要比较两个日期差多少天,因此,就把参与比较的两个日期都转换为整数,把日期比较转换为整数比较。转换的公式是:

(年-2000)× 384 + 月× 32 + 日

 

至于为何是384和32,我不得而知啦,如果哪天找到了原因,我会把原因补充到这里的。

 

另外,如果可以用Entity SQL的话,倒是可以使用Sql Server的DateDiff函数,代码写起来类似这样:

entities.ImportLogs.Where("SqlServer.DATEDIFF('DAY', it.UploadedDate, SqlServer.GETDATE()) = 14");

 

转载于:https://www.cnblogs.com/Ricky81317/archive/2010/02/08/1665955.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值