代码之家  ›  专栏  ›  技术社区  ›  Tamir

不带毫秒的实体SQL比较日期时间

  •  5
  • Tamir  · 技术社区  · 15 年前

    我正在尝试使用EntityObject和EntitySQL查询从mssql db获取一些记录。 我用来筛选的字段是日期时间类型。 生成的查询在没有毫秒的情况下投影到SQL Server,不会返回任何结果。 当我添加毫秒数时,会得到结果。

    如何使用EntitySQL在不使用毫秒的情况下获取结果?

    谢谢。

    3 回复  |  直到 7 年前
        1
  •  3
  •   Christian Payne Larry Baltz    14 年前

    它不优雅,但这对我很有用:

    foos.SingleOrDefault(f => f.EntryDate.Year == bar.EntryDate.Year &&
                              f.EntryDate.Month == bar.EntryDate.Month &&
                              f.EntryDate.Day == bar.EntryDate.Day &&
                              f.EntryDate.Hour == bar.EntryDate.Hour &&
                              f.EntryDate.Minute == bar.EntryDate.Minute &&
                              f.EntryDate.Second == bar.EntryDate.Second);
    
        2
  •  1
  •   BenMorel Sonaten    11 年前

    一种方法是创建数据视图,其中datetime列被转换为smalldatetime(没有毫秒)。

    然后将视图添加到实体框架模型中,并通过视图读取数据。

    希望这有帮助

    设拉子

        3
  •  0
  •   Igor Vaschuk    15 年前

    我发现的解决方法是将初始获取存储日期设置为.tobinary(),然后当您进行筛选时,只需执行新的日期时间(binaryValue)并与之进行比较。

    推荐文章