我有以下問題:在數據庫表中記錄了Sales。其中一個字段是SaleDate,它是SQL Server日期類型。該網站現在允許在這個領域進行搜索。它允許僅搜索一年。使用Linq-to-SQL查詢日期
我們假設有一個記錄日期爲2008/11/01。如果我搜索「2008」,則返回條目,這當然是正確的。但搜索「2008/11/01」不會返回條目。
因此,這裏是我的代碼:
filteredSales = filteredSales.Where(s => s.SaleDate.ToString().Contains(searchterm));
I have also tried this ones:
filteredSales = filteredSales.Where(s => s.SaleDate.Value.ToString().Contains(searchterm));
filteredSales = filteredSales.Where(s => s.SaleDate.Value.ToShortDateString().Contains(searchterm));
他們也不起作用。
也許這不是一個LinQ問題,但更多的文化,因爲這是一個德國的應用程序和搜索詞真的是「01.11.2008」。但是,當我輸出數據庫中的值,甚至直接查看數據庫中顯示的「01.11.2008」。
感謝您的幫助。
邁克爾
下面是基於以下選擇的答案的完整的解決方案:
try
{
DateTime sdt = DateTime.Parse(suchbegriff, new System.Globalization.CultureInfo("de-DE"));
filteredSales = filteredSales.Where(s => s.SaleDate.Value == sdt);
}
catch (FormatException e)
{
// in case we have only the year try to make a string match
filteredSales = filteredSales.Where(s => s.SaleDate.Value.Year.ToString().Equals(suchbegriff));
}
邁克爾