使用Linq比较两个sql日期

时间:2015-01-16 15:07:16

标签: c# sql linq datetime linq-to-sql

我需要比较SQLServer上的两个日期,看看用户在系统注册10秒后是否已经记录,但是当我尝试这个查询时,它给了我一个

NotSupportedException [System.NotSupportedException] = {"System.DateTime AddSeconds(Double)"}

查询:

var query = from user in this.Query()
            where (user.LastLoginDate.AddSeconds(-10) <= user.CreateDate) 
            select std;

2 个答案:

答案 0 :(得分:0)

这里真的很脏(如果你没有索引可能会有糟糕的表现)解决问题的方法,但它应该有效:

var query = from user in this.Query()
            where ((user.LastLoginDate.Date == user.CreateDate.Date
                && user.LastLoginDate.Hour == user.CreateDate.Hour
                && user.LastLoginDate.Minute == user.CreateDate.Minute
                && user.LastLoginDate.Second <= user.CreateDate.Second + 10)
                ||(user.LastLoginDate.Date == user.CreateDate.Date
                && user.LastLoginDate.Hour == user.CreateDate.Hour
                && user.LastLoginDate.Minute + 1 == user.CreateDate.Minute
                && 60 - user.CreateDate.Second + user.LastLoginDate.Second <= 10)) 
            select std;

我想你明白了。

答案 1 :(得分:-1)

在 DateTimeOffset 字段上使用 CompareTo() 对我有用