我正在尝试比较两种不同格式的两个日期:
var messages = (from m in db.ChatMessages
where m.RoomID == roomID &&
m.MessageID > messageID &&
m.MessageTime > timeUserJoined.AddSeconds(1)
orderby m.MessageTime ascending
select new { m.MessageID, m.Text, m.User.username, m.MessageTime, m.Color });
我的问题是我的数据库表存储了美国格式的DateTime字段,即12/24/2011 1:35:11 PM。所以在上面的查询中,行 m.MessageTime> timeUserJoined.AddSeconds(1)可能是12/24/2011 1:35:11 PM> 24/12/2011 13:35:11 PM
我如何解决这个问题 - 比较两种不同格式的两个日期以及最佳做法是什么?
在我没有得到任何记录的情况下,我认为是因为这些比较问题?
非常感谢:)
答案 0 :(得分:2)
你说他们是DateTime字段......那么好消息; .NET和TSQL中的DateTime 没有任何格式 - 它只是一个数字。您看到的任何特定格式仅存在于IDE或其他工具(SSMS等)的想象中。
只要它是DateTime,你就不会有问题。
答案 1 :(得分:0)
首先,我相信您应该使用DateTime.CompareTo()来比较您的时间戳。
其次,您如何使用消息集合?你知道它是匿名的无类型对象的集合吗?
(我发表评论,但我没有代表)