2013-04-11 110 views
0

我的数据库有5条线的数据:错误的日期时间返回

  1. {2013年2月17日00:00:00}
  2. {2013年4月15日00:00:00}
  3. {2013年6月17日00:00:00}
  4. {2013年8月26日00:00:00}
  5. {二零一三年十二月三十〇日00:00:00}

但是当我这样做:

_db.Quarter 
.Where(q => q.Begin <= DateTime.Now) 
.ToList(); 

与DateTime.Now = {2013年4月16日16时02分26秒} 返回结果只有一个:{2013年2月17日00:00:00}

我的EF版本4.3.1。

有一个疑问:DateTime.Now使用数据库服务器时钟还是应用服务器时钟?

+1

你的怀疑是一个很好的问题。不确定LINQ查询是否将“DateTime.Now()'”更改为实际的日期时间或“GETDATE()”。你必须检查由LINQ – Jonathan 2013-04-11 19:15:39

回答

2

不知道我是否遗漏了一些东西,但所有其他日期都在未来(Datetime.Now()是4月11日)。我希望你得到的结果...

+0

生成的实际查询我改变了时钟模拟的时间:) – MuriloKunze 2013-04-11 19:11:32

+0

但是不应该返回seocnd行吗? – MuriloKunze 2013-04-11 19:12:20

+0

你可以添加另一个日期吗?也许你的'DateTime.Now()'不是你认为的那样? – Jonathan 2013-04-11 19:12:44