c# - 如何使用 LinqToSql 查询特定日期时间

标签 c# datetime linq-to-sql

当使用 Linq2Sql 在特定日期时间查询数据库时,查询总是没有结果。我怀疑时间差了纳秒导致了差异。时间必须相等但不相等。如何查询数据库的日期时间,精确到秒?

以下代码有效,但它完全排除了时间部分:

        var Foos = Bars
                .Where(x =>
                    DbFunctions.TruncateTime(x.EndDate) == DbFunctions.TruncateTime(endDate))
                .Select(x => x.Id);

也试过这段代码(不是很漂亮)但是编译器提示在 linq 查询中有 Date。

        var Foo = Bars
                .Where(x => 
                        x.EndDate.Value.Date == endDate.Value.Date &&
                        x.EndDate.Value.Hour == endDate.Value.Hour &&
                        x.EndDate.Value.Minute == endDate.Value.Minute &&
                        x.EndDate.Value.Second == endDate.Value.Second)
                .Select(x => x.Id);

也试过这个,但查询返回时总是空的。可能 ToString() 在 Linq 查询中不起作用。

var foo = bars.Where(x => x.EndDate.ToString() == endDate.ToString())

最佳答案

您可以使用 DiffSeconds像这样的方法:

var Foo = Bars
       .Where(x => DbFunctions.DiffSeconds(x.EndDate, endDate) == 0)
       .Select(x => x.Id);

关于c# - 如何使用 LinqToSql 查询特定日期时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35143342/

相关文章:

c# - 在 LINQ to SQL 中命名 parent 和 child

c# - 如何使用 asp.net mvc facebook 访问用户的电子邮件 ID?

c# - 将DirectShow与OpenCV结合

sql-server - 而不是SQL Server中的触发器丢失SCOPE_IDENTITY?

python - 数据框列上的时间操作

python - 如何在python中将日期时间转换为整数

linq-to-sql - Linq 中的 ChangeConflictException 到 Sql 更新

C# 和音频生成/播放

c# - 如何将十六进制字符串转换为十六进制数

python - 获取 DataFrame 的 Datetime 列的工作日/星期几