2013-06-01 3 views
0

나는 판매 테이블에서 다음과 같은 쿼리를 가지고 있으며 간단한 날짜로 필터링하려고합니다.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 

- 내 c.TRAN_DATE 값 time.Example 포함 "2013년 5월 1일 10 : 09 : 49.107"
- 내 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 
관련 문제