2014-11-03 125 views
0

的两种不同格式的我有我的表EndDate列,它接受记录等这样比较的DateTime

2014年10月29日00:00:00.000

现在我想以比较这DateTime当前日期。对于这一点,我做了这样的: -

var today=DateTime.Now; 

var LstEvents = (from t in _context.Tournaments 
          where t.SiteId == siteId && t.EndDate != null 
          && t.EndDate < today 
          select t).ToList(); 

t.EndDate < today没有返回结果我想要的。我做添加监视今天和检查的价值和它的格式是一样

今天{2014年11月3日下午8时12分〇〇秒} System.DateTime的

因此,我的日期是无法进行比较。 任何帮助将不胜感激

谢谢!

+0

'DateTime'没有格式,字符串有。什么类型的'EndDate'列? – 2014-11-03 14:48:18

+0

datetime @TimSchmelter – 2014-11-03 14:49:28

+2

'DateTime'由_value_进行比较,而不是格式化值。别的东西正在抛弃你的结果。 – 2014-11-03 14:50:22

回答

1

我已经粘贴的代码是完全正确的。我知道DateTime格式是无关紧要的。无论是来自数据库,还是我在C#代码中使用它。我有点困惑,因为我认为如果数据库中的DateTime记录以某种格式设置,那么它不能与C#中的DateTime值进行比较。要么我们必须改变格式或做一些事情。无论如何,感谢guyzz的帮助。

干杯!

1

他们可比。你所看到的是你的日期的字符串表示,它需要格式文化考虑在内。

如果您从调试器中看到了这一点,那么它会针对您的实例显示ToString()的结果,即使用常规日期和时间格式说明符('G')和当前线程的区域性。

(编辑:相信这是他所指的是)

enter image description here

+0

你能告诉我一些代码吗?我无法得到这个@ ken2k – 2014-11-03 14:57:19

+0

我不认为这是一个代码项,本身。我认为ken2k正在讨论在IDE中出现的值。 – Robert 2014-11-03 16:41:58