如何在实体框架上搜索日期

问题描述 投票:0回答:1

我试图在我的数据库中获取日期,我尝试了不同的方法,但似乎没有任何效果

这是我在数据库“2024-04-18 19:47:36.337”上的日期,其类型为日期时间,我在 C# 上使用 Microsoft sql server 和entityFramework,变量是 public DateTime InitH { get;放; }

我的查询比这更复杂,但我发现问题是日期。所以我尝试获得搜索日期的最佳解决方案

public void obtenerFechaHarcodeada()
{
    DateTime fecha = new DateTime(2024, 4, 18, 19, 47, 36);


    var registro = _dbContext.AssignmentRecords
        .FirstOrDefault(r=> r.InitH == fecha);

}

有什么想法吗?

我试图保存相同的日期和相同的变量以在数据库中搜索,但它永远不起作用

c# sql-server linq linq-to-sql entity-framework-6
1个回答
0
投票

在我的示例中将日期时间双方都转换为相同的格式,我将毫秒归零并进行比较

void Main()
{
    var dt = new DataTable();
    dt.Columns.AddRange(new DataColumn[] { new DataColumn("ID", typeof(int)), new DataColumn("DATETIME", typeof(DateTime))});
    dt.Rows.Add(1, "2024-04-18 19:47:36.337");
    dt.Rows.Add(2, "2024-04-18 19:47:36.222");
    dt.Rows.Add(3, "2024-04-18 19:47:38.000");
    
    DateTime fecha = new DateTime(2024, 4, 18, 19, 47, 36).Dump();

    dt.AsEnumerable().Where(w=> 
        w.Field<DateTime>("DATETIME").AddMilliseconds(-w.Field<DateTime>("DATETIME").Millisecond) == fecha).Dump();
    
}

结果将是(前 2 行)

© www.soinside.com 2019 - 2024. All rights reserved.