您能帮忙将此查询从sql转换为linq吗? [英] Can you please help with converting this query from sql to linq

查看:57
本文介绍了您能帮忙将此查询从sql转换为linq吗?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

 选择 LogYear,LogMonth,LogDay,UserId,DateDiff(mi,MIN(cast(cast(cast(LogYear  varchar ( 4 ))+ /' + cast(LogMonth  varchar ('  as   2 ))+ ' + Cast(LogHour  as   varchar ( 2 ))+ :' + cast(LogMinute  varchar ( 2 )) as   datetime ))),MAX(cast(cast(cast(LogYear  as   varchar ('  as   varchar ( 2 ))+ ' /' + cast(logday  as   varchar ( 2 ))+ ' ' + Cast(LogHour  as   varchar ( 2 ))+ ' :' + cast(LogMinute   varchar ( 2 )) as   datetime )))))来自日志
 通过 LogYear,LogMonth,LogDay,UserId
订单 通过 UserId 

解决方案

<您的SQL查询略有错误,因为DateDiff不会为您提供日志的持续时间".它将始终返回0.可能最简单的方法是在初始查询后拉出持续时间或最小/最大时间戳.

 昏暗 q =来自日志 In 日志_
        选择 log.LogYear,log.LogMonth,log.LogDay,log.UserId,LogTimeStamp = 新建 DateTime( log.LogYear,log.LogMonth,log.LogDay,log.LogHour,log.LogMinute, 0 )_
        按用户编号排序

 Dim 持续时间= q.Max( Function (l)l.LogTimeStamp)-q.Min(函数(l)l.LogTimeStamp)


select LogYear, LogMonth, LogDay,UserId, DateDiff(mi,MIN(cast(cast(LogYear as varchar(4)) + '/' + cast(LogMonth as varchar(2))+ '/' + cast(logday as varchar(2)) + ' ' + Cast(LogHour as varchar(2)) + ':' + cast(LogMinute as varchar(2)) as datetime)),MAX(cast(cast(LogYear as varchar(4)) + '/' + cast(LogMonth as varchar(2))+ '/' + cast(logday as varchar(2)) + ' ' + Cast(LogHour as varchar(2)) + ':' + cast(LogMinute as varchar(2)) as datetime)))  from logs
Group By LogYear, LogMonth, LogDay, UserId
Order by UserId

解决方案

Your SQL query is slightly wrong in that the DateDiff will not give you the "duration" of the log. It will always return 0. It''s probably easiest to just pull out the duration or min/max timestamps after the initial query.

Dim q = From log In Logs _
        Select log.LogYear, log.LogMonth, log.LogDay, log.UserId, LogTimeStamp = New DateTime(log.LogYear, log.LogMonth, log.LogDay, log.LogHour, log.LogMinute, 0) _
        Order By UserId

Dim duration = q.Max(Function(l) l.LogTimeStamp) - q.Min(Function(l) l.LogTimeStamp)


这篇关于您能帮忙将此查询从sql转换为linq吗?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆