C# 如何在存储过程sql中添加秒和小时

C# 如何在存储过程sql中添加秒和小时,c#,sql,sql-server,linq,stored-procedures,C#,Sql,Sql Server,Linq,Stored Procedures,我使用的是MicrosoftSQLServerManagementStudio 2008。我正试图从数据库中获取信息。下面是linq查询的示例 var fbPost = db.FacebookStatusUpdates .Where(f => f.Status == FacebookNotificationStatus.Active && f.Alarm.User.FbStatu

我使用的是MicrosoftSQLServerManagementStudio 2008。我正试图从数据库中获取信息。下面是linq查询的示例

    var fbPost = db.FacebookStatusUpdates
                .Where(f => f.Status == FacebookNotificationStatus.Active &&
                            f.Alarm.User.FbStatus == true)
                .AsEnumerable() 
                .Where(f => f.FacebookUpdateTime - f.ClientTime.Offset <=
                            DateTimeOffset.Now.UtcDateTime.AddSeconds(f.Offset))
                                .ToList();
var fbPost=db.facebook状态更新
。其中(f=>f.Status==FacebookNotificationStatus.Active&&
f、 Alarm.User.FbStatus==真)
.可计算的()
.其中(f=>f.FacebookUpdateTime-f.ClientTime.OffsetProbem是否存在:

         DATEADD(hour,datepart(tz,a.ClientTime),a.FacebookUpdateTime)
datepart(tz,a.ClientTime)以分钟为单位返回偏移量,因此我改为

         DATEADD(minute,datepart(tz,a.ClientTime),a.FacebookUpdateTime)
2013-11-13 12:03:36.0000000+02:00 datepart返回120。

查看DATEDIFF(…)SQL Server 2008有一个类型,相当于.NET的。通过将表类型更改为它,可以避免转换,并可以使用简单的比较运算符进行查询
and   DATEADD(hour,datepart(tz,a.ClientTime),a.FacebookUpdateTime)<=DATEADD(second, a.Offset,    @date2);
         DATEADD(hour,datepart(tz,a.ClientTime),a.FacebookUpdateTime)
         DATEADD(minute,datepart(tz,a.ClientTime),a.FacebookUpdateTime)