实体SQL比较datetime而不是毫秒

时间:2009-06-30 10:25:12

标签: c# tsql entity-framework objectquery

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

如何使用EntitySQL在没有毫秒的情况下获得结果?

感谢。

3 个答案:

答案 0 :(得分:3)

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

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);

答案 1 :(得分:1)

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

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

希望这有帮助

西拉

答案 2 :(得分:0)

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