C# Linq到SQL-以两种不同格式比较两个日期

C# Linq到SQL-以两种不同格式比较两个日期,c#,sql,linq,C#,Sql,Linq,我试图比较两种不同格式的日期: var messages = (from m in db.ChatMessages where m.RoomID == roomID && m.MessageID > messageID && m.MessageTime > timeUserJoined.AddSe

我试图比较两种不同格式的日期:

       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)可能是2011年12月24日下午1:35:11>2011年12月24日下午13:35:11

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

目前我没有收到任何记录,我想是因为这些比较问题


非常感谢:)

您声明它们是日期时间字段。。。那么好消息,;NET和TSQL中的DateTime没有任何格式-它只是一个数字。您看到的任何特定格式只存在于IDE或其他工具(SSM等)的想象中


只要是DateTime,这里就不会有问题。

首先,我认为应该使用DateTime.CompareTo()来比较时间戳

第二,您如何使用messages集合?您知道这是一个匿名、非类型化对象的集合吗


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

我怀疑
DateTime
的格式与您的问题有关。用于获取SQL查询,并查看它是否与您期望的SQL相似。我不同意比较:
很好,在我看来可读性更高。完全正确。事实上,在LINQtoSQL中,这会转换为SQL查询。SQL将使用其本机格式和操作来比较这些内容,而不考虑应用程序中的特定表示格式。