Rob*_*son 4 c# mysql sql-server lambda entity-framework-6
我有三个精度的图表。
每小时、每 30 分钟、每 15 分钟。
包含我的数据的表如下所示:

当我生成图表时,我从特殊日期时间开始,例如从当前日期时间开始
例如。当我从 18:00 开始时,我的精度是每 15 分钟一次,我需要这个时间的数据
在我的数据表中,每 3 分钟有最大数据,因此当我想获取 17:15 的数据时,我的 lambda 查询返回 null,因为我只有 17:13 和 17:16 的数据。
所以我需要查询返回最接近我的数据时间的数据。在上例中,需要返回 17:16 开始的数据。
我尝试了 DiffHours 方法,但它在 MySQL 上不起作用。我需要在 MySQL 和 MSSQL 上工作的方法
我当前的方法如下所示:
var report = _reportRepository.FindBy(a => a.Fridge.FridgeIdentity == fridgeIdentity && a.CreatedDate.Year == fromTime.Year && a.CreatedDate.Month == fromTime.Month && a.CreatedDate.Day == fromTime.Day && a.CreatedDate.Hour == fromTime.Hour).FirstOrDefault();
Run Code Online (Sandbox Code Playgroud)
但它仅适用于每小时精度。
感谢帮助!
怎么样,要获得最接近特定间隔的时间:
var fromTime = new DateTime(2016, 05, 20, 9, 0, 0);
var report = _reportRepository
.OrderBy(m =>m.CreatedDate > fromTime
? m.CreatedDate - fromTime
: fromTime - m.CreatedDate)
.Take(1);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1880 次 |
| 最近记录: |