-- 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 27120
Notice Python 무료 강좌 - 기초, 중급, 머신러닝(2023년 6월 업데이트) 코난(김대우) 2021.01.01 15310
» 문자열을 datetime으로 변환 질문입니다. [3] 바람의취객 2013.11.28 14611
7379 express 툴킷 설치때문에 문의 드립니다. [1] 샤바랄라 2013.11.27 4967
7378 Varchar(max)에 들어있는 xml 내용 replace [2] 레프 2013.11.27 4931
7377 데이터를 삭제 할때 TRUNCATE와 DELETE의 차이를 알고 싶습니다. 호짱 2013.11.27 5221
7376 월별 또는 일별 tansaction count 를 조회하는 방법 나파파 2013.11.27 18044
7375 SQL의 CONVERT 구문을 오라클로... [1] 정지홍_308123 2013.11.26 25434
7374 mssql cast vs str performance [4] 엘리엘1 2013.11.26 6283
7373 다른테이블로 값을 복사할때 순번을 적용시키고자 합니다. [3] taz2315 2013.11.26 5301
7372 between 질문입니다. [2] 거저먹네 2013.11.25 16546
7371 2005->2012 linked server [5] taz2315 2013.11.25 11894
7370 저장프로시저 질문입니다. [1] 마에스트로 2013.11.25 4339
7369 조건을 넣었을 경우 결과값을 뽑을 수 있을까요? [6] taz2315 2013.11.22 4604
7368 DataBase 복사와 관련하여 질문입니다 [1] 박연준 2013.11.22 4696
7367 각기 다른 장비에 있는 DB와 join 을 해서 데이터를 불러 올 수 있을까요? [3] taz2315 2013.11.22 5408
7366 복제 관련 질문드립니다. 파란비 2013.11.22 4942
7365 월별 판매 금액을 구하려합니다. [3] 소이현승파파 2013.11.21 5622
7364 mssql 2005 복원 진행 하려 합니다 몇가지 질문좀 드릴께요.. [2] irun 2013.11.21 6111
7363 테이터에 구분값이 포함되어있는경우 select해오는방법이요? [4] 클리티에 2013.11.21 5006
7362 DB서버가 갑자기 느려지는데 원인을 모르겠습니다(2) [2] 토토로 2013.11.21 7679
7361 간밤에 창고정보가 변경되었는데 원인을 찾을 수 있을까요? [5] Larry 2013.11.21 5278





XE Login