簡體   English   中英

如何在c#中格式化日期變量以匹配SQL數據庫中存儲的日期

[英]How to format date variable in c# to match stored date in SQL database

我正在將文本框中的日期讀入 C# 程序,並將日期與 SQL 數據庫中的條目進行比較。 盡管日期的 SQL 查詢顯示該日期有條目,但我無法讓它們匹配。

我試過用.Date保存到一個變量,試圖.Date hh:mm:ss ,但沒有結果。 我已經嘗試DateTime.ParseExact更改格式以匹配數據庫。

if (!System.String.IsNullOrEmpty(searchDate))
{
      CultureInfo culture = new CultureInfo("en-US");
      DateTime completeDate = DateTime.ParseExact(searchDate, "M/d/yyyy", culture);
      requests = requests.Where(x => x.CompletionDate == completeDate);
}

當我搜索1/28/2019時,我希望在數據庫中找到兩條記錄的匹配1/28/2019 我沒有得到任何結果。 我嘗試了其他條目,也沒有找到任何匹配項。 沒有生成錯誤消息。

如果您只是比較兩個DateTime對象,它們不僅會考慮日期,還會考慮時間。

要僅比較日期,您可以使用DateTime.Date屬性。

var date1 = new DateTime(2019, 7, 29, 15, 23, 44);
var date2 = new DateTime(2019, 7, 29);

Console.WriteLine(date1 == date2);
Console.WriteLine(date1.Date == date2.Date);

在這種情況下,第一個將返回false ,第二個將返回true

問題是時間不是您比較的因素,不應包括在內。 您只需要明確比較日期部分...

requests = requests.Where(x => x.CompletionDate.Date == completeDate.Date);
CultureInfo culture = new CultureInfo("en-US");

DateTime completeDate = DateTime.ParseExact(searchDate, "M/d/yyyy", culture);

completeDate = 1/28/2019 12:00:00 AM

如果存儲在 db 中的日期是1/28/2019它將不匹配。

暫無
暫無

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

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