【问题标题】:How to use BETWEEN keyword in Entity Framework?如何在实体框架中使用 BETWEEN 关键字?
【发布时间】:2012-08-27 10:24:41
【问题描述】:

如何在实体框架中使用 BETWEEN 关键字?

这是我的 SQL 查询

    SELECT *
  FROM [HRM].[dbo].[meals]
  WHERE SHIFTCODE = 'Normal'
  AND 12.59 BETWEEN [STAR TIME] AND [STAR TIME]+DURATION/10;

这是我的实体框架代码。

HRMEntities HRM = new HRMEntities();
            meal ml = HRM.meals.SingleOrDefault(p => p.SHIFTCODE == "Normal");

值 12.59 可以是变量

【问题讨论】:

    标签: c# entity-framework between


    【解决方案1】:

    您可以使用>=<=DateTime 来获取范围。

    HRMEntities HRM = new HRMEntities();
    meal ml = HRM.meals.SingleOrDefault(p => p.SHIFTCODE == "Normal" 
                                        && p.StartTime <= yourTime 
                                        && (p.StartTime + duration) >= yourtime);
    

    【讨论】:

    • 支票不应该倒过来吗? p.StartTime = yourtime); ?
    • @YngveB.Nilsen,是的,在输入答案时混合了它
    • 谢谢伙计们,另外一件事,基本上 StartTime 存储为 DECIMAL,duration 存储为 SQL 中的 INT,因为它们处理时间,有什么简单的方法可以摆脱像 12.75 这样的值,例如 STAR TIME= 12.45 DURATION = 30 // 30 分钟 START TIME + DURATION/10 = 12.75 如果 myTime 为 11.05,则会给出错误的反馈
    • 不太清楚您的新查询,但您可以使用((int) StartTime) + duration 获得小数点后的int 部分
    • 你可以看看DateTime.AddMinutes方法
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-03-15
    • 1970-01-01
    • 1970-01-01
    • 2013-11-04
    • 1970-01-01
    • 1970-01-01
    • 2012-04-28
    相关资源
    最近更新 更多