2014-01-08 3 views
0

표 - tblData (1월 용 데이터) : I는 C에서 #이를 달성하려고 select * from tblDataC 번호 - 날짜 형식

ID Tag  Date 
1 OB 2014-07-01 
2 OC 2014-07-01 
3 AB 2014-07-01 

와 데이터 표시 방법

이것이이지만 이 작동하지 않습니다.

DateTime dtFrom = Convert.ToDateTime(txtFromDate.Text.Trim(),System.Globalization. 
        CultureInfo.GetCultureInfo("hi-IN").DateTimeFormat); 

DateTime dtTo = Convert.ToDateTime(txtToDate.Text.Trim(),System.Globalization. 
       CultureInfo.GetCultureInfo("hi-IN").DateTimeFormat); 

gridview1.DataSource = objDAL.GetData(dtFrom,dtTo); 
gridview1.DataBind(); 

여기에 행이 위의 쿼리로 반환 된 SQL 서버 2008 R2 저장 프로 시저

Alter Procedure GetData 
    (
     @DateFrom Date, @DateTo Date 
    ) 
    As 
    Begin 
     Select * from tblData 
     where date between @DateFrom and @DateTo 
    End 

, 그리고 나는이 때문에 날짜 형식이 될 수 있으리라 생각합니다. 어떻게이 문제를 해결할 수 있습니까? 코드 또는 저장 프로 시저에서 변경해야하는지 확실하지 않습니다.

편집 : 텍스트 상자에

  • 날짜는 - '날짜'열의 데이터 유형은 단지 날짜가 아닌 날짜
  • 입니다 1/8/2013 12:00:00 AM
  • -dtFrom 뒤에 코드에서 08-01-2013
  • 가된다

GetData in DAL

문제는 dal 코드와 다릅니다. 그것은 잘 실행됩니다. 행 수는 0입니다. 그래서 나는 그것의 diff를 확신합니다. 날짜 형식.

+1

objDAL.GetData()를 볼 수 있습니까? – Liath

+0

dtFrom 및 dtTo에는 무엇이 포함되어 있습니까? 그리고 Date에 대한 열의 실제 데이터 유형은 무엇입니까? 그것은 DateTime입니까? – dash

+1

'drFrom'과'dtTo'의 값을 확인 했습니까? –

답변

1

1) SP에서 시도해보십시오.

Select * from tblData 
Where 
([date] >= @DateFrom and [date] <= @DateTo) 

도움이되는지 확인하십시오.

2) 날짜 시간 매개 변수 아래 그렇지 않은 사람 (DAL 또는를 허용하도록 SP 변경은) 아마 암시 날짜 값으로 UI에서 날짜 시간 값을 변환합니다. 다음과 같이 날짜를 변환 CONVERT 기능을 사용할 수 있습니다

+0

DateTime으로 변경되었습니다. 테이블의 유일한 날짜는 1 월 7 일입니다. SP로 ~ 할 때 GetData '2014-07-01', '2014-07-01'~ (yyyy-dd-mm)을 실행하면됩니다. 하지만 웹 페이지에서 '08 -01-2014 '및 '08 -01-2014'(dd-mm-yyyy)를 입력해도 텍스트 상자에 모든 레코드가 있습니다 .. !!! – Ruby

+0

@Ruby WHERE 절에 AND가 있고 OR이 아닌 SP에 확실합니까? 표에 행을 추가하고 테스트 해보십시오. 1 행만이 아닙니다. –

+0

감사합니다. 그 일 – Ruby

1

사용 ..

Alter Procedure GetData 
(
    @DateFrom Date, @DateTo Date 
) 
As 
Begin 
    set @DateFrom = CONVERT(DATE, @DateFrom, 101) 
    set @DateTo = CONVERT(DATE, @DateTo , 101) 

    Select * from tblData 
    where [date] between @DateFrom and @DateTo 
End 

더 날짜 대화 형식 this link를 사용합니다.

0

C#과 SQL에서 쿼리의 날짜 형식을 확인하십시오. 때로는 날짜 형식이 일치하지 않을 때 문제가 발생하는 경우가 많습니다. 일반적인 실수는 쿼리에 시간이 포함되고 다른 하나는 쿼리에 포함되지 않는 경우입니다.

1

MyDB.GetData(dtFrom,dtTo) 내에서 절차를 호출 할 때는 dtFromdtTo을 문자열로 전달하십시오.예를 들어 -

//I am assuming you are using SqlCommand To connect to DB 
cmd.Parameters.AddWithValue("@DateFrom", dtFrom.ToString("yyyy-MM-dd")); 
cmd.Parameters.AddWithValue("@DateTo", dtFrom.ToString("yyyy-MM-dd")); 

OR,

cmd.Parameters.AddWithValue("@DateFrom", dtFrom.ToString("dd-MMM-yyyy")); 
cmd.Parameters.AddWithValue("@DateTo", dtFrom.ToString("dd-MMM-yyyy")); 

SQL 서버는이 문자열 값을 읽을 수 있습니다 올바르게 date로 변환.