Linq To SQL - 比较两种不同格式的两个日期

时间:2011-12-24 14:41:13

标签: c# sql linq

我正在尝试比较两种不同格式的两个日期:

       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

我如何解决这个问题 - 比较两种不同格式的两个日期以及最佳做法是什么?

在我没有得到任何记录的情况下,我认为是因为这些比较问题?

非常感谢:)

2 个答案:

答案 0 :(得分:2)

你说他们是DateTime字段......那么好消息; .NET和TSQL中的DateTime 没有任何格式 - 它只是一个数字。您看到的任何特定格式仅存在于IDE或其他工具(SSMS等)的想象中。

只要它是DateTime,你就不会有问题。

答案 1 :(得分:0)

首先,我相信您应该使用DateTime.CompareTo()来比较您的时间戳。

其次,您如何使用消息集合?你知道它是匿名的无类型对象的集合吗?

(我发表评论,但我没有代表)