2012-03-12 4 views
0

최근 SQL에서 매개 변수화 된 쿼리로 뛰어 들었습니다. 쿼리를 실행할 때 날짜에 대한 불만을 받고 있습니다.매개 변수를 포함한 전체 SQL 쿼리를 얻는 방법

문자열로 표시된 DateTime은 System.Globalization.GregorianCalendar 달력에서 지원되지 않습니다.

나는 내가 이것을 디버깅하기 위해 얻을 필요가 무엇 매개 변수화 쿼리 문자열

SELECT * FROM Table WHERE field = @p_param 

을 얻을 쿼리 땅에서 나는이 작업을 수행하려면 어떻게

SELECT * FROM Table WHERE field = "2012-03-12 14:09:00" 

이다 도착하면? 나는 그것이 단순한 무엇인가 의심한다. 그러나 나는 단지 그것을 볼 수 없다!

날짜 시간 매개 변수와 함께 추가되는 다음

sql2.Parameters.Add("@p_UpdateTime", SqlDbType.DateTime).Value = DateTime.Parse(updateTime); 

및 가동 시간은 당신이처럼 매개 변수를 변환 할 수 있습니다

String updateTime = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ff"); 
+0

같은 명령 모양은 무엇을 사용하는 데 필요한 때, 나는 초 동안 FF를 사용했다? –

+0

쿼리를 설정하는 코드를 게시 한 다음 전체 쿼리를 어떻게 인쇄하고 있습니까? 그것의 모양에서 실수로 p_param 변수를 문자열로 포함 시켰습니까? – BoredAndroidDeveloper

+1

요점은 : SQL 명령 **은 예상 한 두 번째 문자열로 변환되지 않는다는 것입니다! 매개 변수가있는 SQL 명령이 매개 변수 목록과 함께 SQL Server로 전송됩니다. 매개 변수 값은 실제로는 SQL 명령에서 문자열로 대체되지 않습니다 ** - 그렇게 표현할 수 없으므로 절대 존재하지 않습니다! –

답변

-1

내가 SS

+0

누가 이것을 -1로 표시했는지 설명해주십시오. 내가 결국 발견했기 때문에 그 문제를 일으키는 것은 문제였습니다. : – Neo

+0

이것을 대답으로 표시해야합니다. –

+0

Thansk Martin 내가 가지고있는 줄 알았는데 : S – Neo

0

로 설정되는 :

CONVERT(VARCHAR(19), @p_param, 120) 

곳 120은 yyyy-mm-dd hh : mi : ss (24h)의 변환 코드입니다.

+0

미안하지만 작동하지 않았습니다 – Neo

1

SQL Server 프로파일 러는 모든 SQL Server와 함께 제공됩니다. SQL Server로 전송 된 전체 명령을 보여줍니다.

+0

저는 항상 최근 실행 쿼리를 얻기 위해 쿼리를 실행했습니다. 프로파일 러를 사용하여 쿼리를 얻는 가이드로 연결되는 링크는 무엇입니까? – Neo

+0

필자는 항상 open-it을 사용하여 늪지 표준 추적을 시작하고 just-the-query 때까지 프로그램을 실행 한 다음 추적을 일시 중지합니다. 일반적으로 쿼리는 최신 쿼리이거나 그 중 하나입니다. –

1

SQL Server 프로파일 러를 열고 SQL Server에 대해 실행 된 내용을 추적하십시오. 이 도구를 사용하는 방법은 기본 tutorial을 참조하십시오.

+0

도구 아래에 표시되는 optionj가 서버 2005 SQL 관리에없고 내 2010 아래 하나도 표시되지 않습니다 – Neo

+0

[MSDN] (http://msdn.microsoft.com/en-us/library/ms181091) (v = sql.90) .aspx)를 엽니 다. – RePierre

0

문자열 값을 보내는 것처럼 보입니다. 현재 스레드 문화에 따라 DateTime.Format이 변경되어 문제가 발생합니다. 매개 변수에 전달할 때

같은 것을보십시오 : 지금 그것을 해결 한

DateTime dateParam = GetDateParam(); 

_sqlCommand.Parameters.Add(
    new SqlParameter 
    { 
     DbType = DbType.Date, 
     ParameterName = "@p_param", 
     Value = dateParam 
    }); 
관련 문제