簡體   English   中英

將DateTime與ASP.NET MVC和SQL Server進行比較

[英]Comparing DateTime with ASP.NET MVC and SQL Server

我正在嘗試創建一個強類型模型和視圖。 這部分代碼應該返回以聯系我們形式發送的“電子郵件”列表。

我想返回今天發送的所有表單提交。 SQL Server 2008數據類型是datetime 所以我的模型中有一個DateTime字段。

public ActionResult ResultTable()
{
    CombinedReport report = new CombinedReport();

    report.emails = report.db.ContactEmails.Where(w => w.FormInserted.Equals(DateTime.Today)).ToList();
    return PartialView(report);
}

當我為本地內置的SQL Server CE配置運行時,它工作正常。

當我為運行SQL Server 2008的實際數據庫設置它時,它不起作用。

通過一些反復試驗,並查看程序其他部分的代碼,我注意到DateTime的C#實現包括作為日期的一部分的12:00:00AM ,當它與SQL進行比較時,它正在發送確切的時間。

它不會讓我將DateTime與字符串進行比較,因此我甚至無法將“今天”格式化為字符串。

我在這里實例化的CombinedReport模型只是特定頁面的視圖模型,並不直接映射到數據庫(“ContactEmails”確實)。

什么是前進的最佳方式,讓我保持強烈的視圖和模型?

如果您只想比較值的日期部分,則應該明確說明:

DateTime today = DateTime.Today;
report.emails = report.db.ContactEmails
                         .Where(w => w.FormInserted.Date == today)
                         .ToList();

現在,您使用的LINQ的味道是否支持Date屬性是另一回事 - 但這就是我試圖開始的。

如果您使用的是EF,請使用EntityFunctions.TruncateTime方法:

.Where(w => EntityFunctions.TruncateTime(w.FormInserted).Equals(DateTime.Today))

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM