【问题标题】:Entity SQL compare datetime without milliseconds实体 SQL 比较没有毫秒的日期时间
【发布时间】:2009-06-30 10:25:12
【问题描述】:

我正在尝试使用 EntityObject 和 EntitySQL 查询从 MSSQL DB 中获取一些记录。 我用来过滤的字段是日期时间类型。 生成的查询在没有毫秒的情况下投射到 SQL Server 不返回任何内容。 当我添加毫秒时,我得到了结果。

我如何使用 EntitySQL 来获取结果而不需要毫秒?

谢谢。

【问题讨论】:

    标签: c# tsql entity-framework objectquery


    【解决方案1】:

    这并不优雅,但这对我有用:

    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】:

      一种方法是创建数据视图,将日期时间列转换为 smalldatetime(没有毫秒数)。

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

      希望对你有帮助

      设拉子

      【讨论】:

        【解决方案3】:

        我发现的解决方法是在初始获取存储日期为 .ToBinary() 然后当您过滤时,只需执行 new DateTime(binaryValue) 并与之进行比较。

        【讨论】:

          猜你喜欢
          • 2011-08-29
          • 1970-01-01
          • 2011-10-25
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2021-03-17
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多