4th*_*ace 2 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
Run Code Online (Sandbox Code Playgroud)
任何想法这个语法有什么问题?
您需要在调用存储过程之前执行这样的计算,在将值传递给参数的过程中不能这样做.例如:
DECLARE @utc NVARCHAR(64) = CONVERT(NVARCHAR(64, GETUTCDATE(), 121);
EXEC mysproc
@Password = N'',
@IsAuthorized = 1,
@UTCTIMESTAMP = @utc,
@UserId = @SingleId OUTPUT;
Run Code Online (Sandbox Code Playgroud)
这不仅限于函数调用; 你也做不到这样的事情:
EXEC sp_help @objname = N'sys.' + 'tables';
Run Code Online (Sandbox Code Playgroud)
结果:
Msg 102, Level 15, State 1, Line 1
Incorrect syntax near '+'.
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
126 次 |
| 最近记录: |