日付を比較するLinq to Entityクエリがあります。私はその言語が米国英語であるSQLサーバー2008データベースを照会しています。私のアプリケーションは、dd/MM/yyyy形式の日付を処理します。DBとアプリケーションの異なる言語設定との日付比較作業
itemList = from i in _context.Items
select i;
DateTime utcStartDate = DateTime.SpecifyKind(StartDate, DateTimeKind.Utc);
DateTime utcEndDate = DateTime.SpecifyKind(EndDate, DateTimeKind.Utc);
var items= from i in itemList
where c.ModifiedDate.Date >= utcStartDate.Date &&
c.ModifiedDate.Date <= utcEndDate.Date
select i;
ここStartDate
とEndDate
がテキストボックスから読み込まれます(日付のみが入力されている)とのDateTimeに変換DateTime
オブジェクトです。典型的な値は以下のとおりです。{8/3/2012 12:00:00 AM}
2012年3月
08のためにこれは、列がデータベースで更新されたときに値が指定されている方法です。
item.ModifiedDate = DateTime.UtcNow.Date;
は私がサーバーで言語設定を変更することはできません。日付を比較する前に、SQLサーバーからデータを読み取り、 "dd/MM/yyyy"形式に変換する方法はありますか? また、比較が機能するようにDatetime変数を変換する必要がありますか?これを行う正しい、効率的な方法は何ですか?
これは奇妙です。私はここに紛失しています... where節のDateTimeオブジェクトがdd/MM/YYYYにあるとき、私のために働いていません。結果は返されません。 jqueryのdatepicker形式をyy-mm-ddに変更しました。それはうまくいくようです。 – escist
@escist **「DateTime ... in dd/MM/YYYY」という**のようなものはありません。これは暴力団です。 datetime **は数字です** - 文字列ではなく、整数が "12345"でもなく "12,345.0"でもないように**形式の概念はありません**それはちょうど整数123で、文字列表現の概念はありません。 –
@escist ** **ここでの本当の問題は、あなたの 'StartDate'と' EndDate'の値が間違っているということだけです! –