2016-07-24 5 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

datetimeデータ型 –

+1

try 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() OR 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、私はあなたがフォームからデータベースに日付を格納していると思った。 btw、なぜdatetimepickerを使用しないのですか?とにかく、私は私の答えを更新し、それがうまくいくかどうか教えてくれる –

0

に設定ミリ秒コンポーネントで新しいDateTime値を作成します。 0:

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

それとも、また日付形式の下に使用することができます

string dt= DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss.fff", 
              CultureInfo.InvariantCulture); 
関連する問題