-- Number를@Num라고선언
declare @Num varchar(10)

-- UPDATE Time을@month_date 라고선언
declare @month_date datetime

-- 로봇코드명을@Robot_Name라고선언
declare @Robot_Name varchar(max)

-- 로봇의대수를@Robot_No라고선언
declare @Robot_No int

-- 테이블명을@Table_Name라고선언
declare @Table_Name varchar(max)

-- exec프로시저사용을위한함수@strQuery를선언
declare @strQuery varchar(max)

set @month_date = (select Now_Date from HRMS_Diagnostics.dbo.UPDATE_TIME where Num in(1))
set @Robot_Name = 'dbo.tbAxisLoadContinueHis_R'
Set @Num = '20'
set @Robot_No = 20

--로봇대수만큼반복문실행
while @Num <= @Robot_No

begin

set @Table_Name = @Robot_Name + RIGHT('000' + CAST(@Num AS VARCHAR), 3)
set @strQuery = 
'select left (convert(VARCHAR, dtTimeStamp , 120),16),
avg(fLoadContinue_1), min(fLoadContinue_1), max(fLoadContinue_1),
avg(fLoadContinue_2), min(fLoadContinue_2), max(fLoadContinue_2),
avg(fLoadContinue_3), min(fLoadContinue_3), max(fLoadContinue_3),
avg(fLoadContinue_4), min(fLoadContinue_4), max(fLoadContinue_4),
avg(fLoadContinue_5), min(fLoadContinue_5), max(fLoadContinue_5),
avg(fLoadContinue_6), min(fLoadContinue_6), max(fLoadContinue_6),
avg(fLoadContinue_7), min(fLoadContinue_7), max(fLoadContinue_7),
avg(fLoadContinue_8), min(fLoadContinue_8), max(fLoadContinue_8),
avg(fLoadContinue_9), min(fLoadContinue_9), max(fLoadContinue_9)
from '+'HRMS_HIS.'+@Table_Name
+' where dtTimeStamp <='+@month_date
+' group by left (convert(VARCHAR, dtTimeStamp , 120), 16)'
+' order by left (convert(VARCHAR, dtTimeStamp , 120), 16)'
set @Num = @Num + 1
exec(@strQuery)

end
이라고 할때 
@month_date 의 값은 2013-10-27 12:00:00 입니다.
이쿼리를 실행하면 

메시지 241, 수준 16, 상태 1, 줄 30
문자열을 datetime으로 변환하지 못했습니다.

라는 오류가 뜨는데 
set @strQuery =  부분에
'declare @month_date datetime
set @month_date = (select Now_Date from HRMS_Diagnostics.dbo.UPDATE_TIME where Num in(1))'
이라고 한번더 선언을 해주면 정상으로 처리가 됩니다.
제 생각에는 datetime 을 exec함수에서 재대로 변환을 못 하는거 같은데 
정확한 이유와
다시 선언을 안해도 정상 처리 될 수 있는 방법좀 알고싶습니다

No. Subject Author Date Views
Notice SQL강좌: 챗GPT와 함께 배우는 SQL Server 무료 강좌 목차와 소개 (2023년 9월 업데이트) 코난(김대우) 2023.08.18 903
Notice Python 무료 강좌 - 기초, 중급, 머신러닝(2023년 6월 업데이트) 코난(김대우) 2021.01.01 1613
7396 bigint때문에 [1] 마에스트로 2013.12.02 3741
7395 SQL 작성하는 문제의 답을 알고싶습니다. [6] 몰러 2013.12.01 10783
7394 두테이블 비교해서 없는 값을 뽑고싶습니다. 오리지널 2013.11.30 5331
7393 특정 필드의 긴문자열을 여러로우로 분리하기 질문입니다. [3] 유앤미 2013.11.29 5042
7392 MSSQL 대량으로 Insert 할때...... [3] 석호 2013.11.29 31667
7391 트리거 생성시 deleted에서 text 사용하는 방법 없나요? [2] 아네사 2013.11.29 3874
7390 SQL Server Management Studio Express 에서 csv 파일 내보내기(백업하기) 기능 질문 주인님아 2013.11.29 6210
7389 MSSQL 자체에서 사용자 정보를 알고 싶습니다. [2] 아네사 2013.11.29 3984
7388 SQL2005 데이터내보내기 도와주세요 ㅜㅜ [3] 오장석 2013.11.29 4736
7387 Where 절에 사용자 정의 함수가 포함된 구문에서 질문드립니다. 김락중_278785 2013.11.28 3728
7386 기간 데이타 출력시 전 데이타 같이 출력 [2] 냥냥 2013.11.28 18181
7385 SQL 계정의 최종 로그인 시점을 알수 있을까요? [2] 수노 2013.11.28 5025
7384 건우아빠님 마지막으로 하나만 더 물어보겠습니다. [3] 김락중_278785 2013.11.28 22315
7383 건우아빠님 하나만 더 물어보겠습니다. [2] 김락중_278785 2013.11.28 3628
7382 쿼리에 함수를 이용중 궁금한것이 있습니다. [1] 김락중_278785 2013.11.28 3729
7381 중복에 대한질문입니다 [2] 마에스트로 2013.11.28 3608
» 문자열을 datetime으로 변환 질문입니다. [3] 바람의취객 2013.11.28 14501
7379 express 툴킷 설치때문에 문의 드립니다. [1] 샤바랄라 2013.11.27 4957
7378 Varchar(max)에 들어있는 xml 내용 replace [2] 레프 2013.11.27 4921
7377 데이터를 삭제 할때 TRUNCATE와 DELETE의 차이를 알고 싶습니다. 호짱 2013.11.27 5219





XE Login