如何使用convert()函数?

时间:2013-01-18 22:30:58

标签: sql sql-server sql-server-2008

我想将datetime转换为nvarchar(64)。以下代码是用作一系列存储过程参数的一部分的代码段。我已经包含了有错误的区域。

KEYWORD'CONVERT'

附近的语法不正确
exec mysproc...@Password=N'',@IsAuthorized=1,
@UTCTIMESTAMP=CONVERT(NVARCHAR(64), GETUTCDATE(), 121),
@UserId=@SingleId output

任何想法这个语法有什么问题?

1 个答案:

答案 0 :(得分: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 '+'.