2013-06-01 274 views
0

我從Sale表中查詢了以下查詢並希望通過短日期對其進行過濾。將linq日期轉換爲短日期

Dim query = From c In db.Sale Where c.TRAN_DATE=TranDateParam 
      Group By c.TRAN_DATE Into Total_Payment = Sum(c.PAYMENT),Discount_Amount = Sum(c.DISCOUNT) _ 
      Select Total_Payment, Discount_Amount, TRAN_DATE 

-My c.TRAN_DATE值被包括time.Example: 「2013年5月1日10:09:49.107」
-My TranDateParam值是短日期format.Example:「2013年5月1日「

因此我無法比較c.TRAN_DATE = TranDateParam。我嘗試了很多方法隱藏c.TRAN_DATE來縮短日期但不成功。

我試試下面的方法,但失敗:

c.Tran_Date.ToString("dd-MM-yyyy") 
c.Tran_Date.Value.ToShortDateString() 
CDATE(c.Tran_Date) 

如何我解決這個問題?謝謝

+0

你有沒有得到任何錯誤與你嘗試的方法?如何'c.TRAN_DATE.ToShortDateString()'(注意C#區分大小寫)。 – Tim

+0

我嘗試c.Tran_Date.Value.ToShortDateString()。錯誤消息是:「LINQ to Entities不能識別方法'System.String ToShortDateString()'方法,並且此方法不能轉換爲存儲表達式。」 –

+0

'TranDateParam'的數據類型是什麼? – ajakblackgoat

回答

0

問題已修復。我只是改變我的查詢如下:

Dim query = From c In db.Sale Where c.TRAN_DATE= CDate(TranDateParam) _ 
      Group By c.TRAN_DATE Into Total_Payment = Sum(c.PAYMENT),Discount_Amount = Sum(c.DISCOUNT) _ 
      Select Total_Payment, Discount_Amount, TRAN_DATE