2016-07-24 31 views
0

我已經將數據存儲在Sql Server中,並且日期以這種格式存儲2016-07-25 08:57:03.483,而我給出的數據類型是datetime如何在Asp.Net C#中過濾來自日期的數據?

現在我想要過濾來自數據庫的數據使用日期。

string startDate = DateTime.Now.ToString("yyyy-MM-dd 00:00:00"); 
string endDate = DateTime.Now.ToString("yyyy-MM-dd 23:59:59"); 
DateTime startDate1 = DateTime.Parse(startDate); 
DateTime endDate1 = DateTime.Parse(endDate); 

ViewBag.billHistory = db.tbl_electricity. 
Where(x.INSRT_TMSP>= startDate1 && x.INSRT_TMSP<= endDate1).ToList(); 

但數據不過濾我做錯了什麼?

+0

sqlserver數據類型是datetime還是varchar? – nazark

+0

日期時間數據類型 –

+1

嘗試DateTime endDate1 = DateTime.Now.Date.AddHours(23).AddMinutes(59).AddSeconds(59); – nazark

回答

0

如果分貝值的內容需要被忽視的部分時間,你應該比較只有日期部分爲

ViewBag.billHistory = db.tbl_electricity. 
Where(x.INSRT_TMSP.Date>= startDate1 && x.INSRT_TMSP.Date<= endDate1).ToList(); 

How to compare DateTime without time via LINQ?

如果從不需要時間,只需將數據庫中的數據類型從datetime更改爲日期

-1

`

轉換您的字符串通過向universaltime: string1.value.toUniversalTime()string1.toUniversalTime()

這樣的:

string startDate = DateTime.Now.ToString("yyyy-MM-dd 00:00:00"); 
string endDate = DateTime.Now.ToString("yyyy-MM-dd 23:59:59"); 
startDate.toUniversalTime(); 
endDate.toUniversalTime(); 
DateTime startDate1 = DateTime.Parse(startDate); 
DateTime endDate1 = DateTime.Parse(endDate); 

ViewBag.billHistory = db.tbl_electricity. 
Where(x.INSRT_TMSP>= startDate1 && x.INSRT_TMSP<= endDate1).ToList(); 

`

+0

什麼是datetimepicker1? –

+0

nvm,我以爲你是從窗體存儲日期到分貝。順便說一句,爲什麼不使用datetimepicker?總之,我會更新我的答案,然後告訴我這是否有效 –

0

創建設置到毫秒組件的新日期時間值0:

DateTime dt = DateTime.Now; 
dt.AddMilliseconds(-dt.Millisecond); 

或者你也可以使用下面的日期格式:

string dt= DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss.fff", 
              CultureInfo.InvariantCulture);