【问题标题】:How to use convert() function? [duplicate]如何使用转换()函数? [复制]
【发布时间】:2013-01-18 22:30:58
【问题描述】:

我想将日期时间转换为 nvarchar(64)。下面的代码是一个sn-p,用作一系列存储过程参数的一部分。我已经包括了有错误的区域。

KEYWORD 'CONVERT' 附近的语法不正确

exec mysproc...@Password=N'',@IsAuthorized=1,
@UTCTIMESTAMP=CONVERT(NVARCHAR(64), GETUTCDATE(), 121),
@UserId=@SingleId output

你知道这个语法有什么问题吗?

【问题讨论】:

  • 您需要使用中间变量,因为您不能在存储过程参数列表中内联使用大多数函数(例外是 @@ 系统函数,例如以前称为全局的 @@SPID变量)

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


【解决方案1】:

您需要在调用存储过程之前执行这样的计算,在将值传递给参数的过程中您不能这样做。例如:

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 '+'.

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-10-29
    • 2020-11-12
    • 2019-11-23
    • 1970-01-01
    相关资源
    最近更新 更多