2013-01-18 5 views
2

datetime을 nvarchar (64)로 변환하고 싶습니다. 다음 코드는 일련의 저장 프로 시저 매개 변수의 일부로 사용되는 스 니펫입니다. 오류가있는 영역을 포함했습니다. 이 구문에 어떤 문제가 있는지convert() 함수를 사용하는 방법은 무엇입니까?

KEYWORD 'CONVERT'

exec [email protected]=N'',@IsAuthorized=1, 
@UTCTIMESTAMP=CONVERT(NVARCHAR(64), GETUTCDATE(), 121), 
@[email protected] output 

어떤 아이디어 근처의 구문이 잘못?

+1

(예외는있다 '@@'전역 변수라고 불리는'@@ SPID '와 같은 시스템 함수) –

답변

6

저장 프로 시저를 호출하기 전에 이와 같은 계산을 수행해야합니다. 매개 변수로 값을 전달하는 과정에서이를 수행 할 수 없습니다. 예 :

DECLARE @utc NVARCHAR(64) = CONVERT(NVARCHAR(64, GETUTCDATE(), 121); 

EXEC mysproc 
    @Password = N'', 
    @IsAuthorized = 1, 
    @UTCTIMESTAMP = @utc, 
    @UserId = @SingleId OUTPUT; 

이것은 함수 호출에만 국한되지 않습니다. 당신은 또한 같은 작업을 수행 할 수 없습니다

EXEC sp_help @objname = N'sys.' + 'tables'; 

결과 :

당신은 인라인 저장 프로 시저 매개 변수 목록에있는 대부분의 기능을 사용할 수 없기 때문에 중간 변수를 사용할 필요가
Msg 102, Level 15, State 1, Line 1 
Incorrect syntax near '+'. 
관련 문제