[英]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.