2012-04-05 29 views
1

我在做什么错在这里?'@starttimestamp'附近语法不正确。期待SELECT或(

Declare @starttimestamp datetime = getdate(); 
RAISERROR(N'Code not valid until %s', 16, 1, CAST(@starttimestamp AS VARCHAR)); 

产生一个错误说Incorrect syntax near 'CAST'.Incorrect syntax near '@starttimestamp'. Expecting SELECT or (

+1

[请参阅我编辑的答案您的原始问题](http:// stackoverflo w.com/questions/10032914/concatenate-message-in-raiserror/10032939#10032939)。 – 2012-04-05 17:49:32

回答

1

不能raiserror命令内执行的功能。将您的日期一个字符串第一个,像这样:

Declare @starttimestamp datetime = getdate(), 
     @TextDate char(19) 
select @TextDate = convert(char(19),@starttimestamp,120) 

RAISERROR(N'Code not valid until %s', 16, 1, @TextDate) 
0
Declare @starttimestamp varchar(20) = cast(getdate() as varchar(20)); 
RAISERROR(N'Code not valid until %s', 16, 1, @starttimestamp); 
+0

如果您发布代码,XML或数据样本,请**在文本编辑器中突出显示这些行,然后单击编辑器工具栏上的“代码示例”按钮(“{}”)以精确地设置格式并对其进行语法突出显示! – 2012-04-05 18:15:02

+0

你跟着我吗? ;) – Kevin 2012-04-05 20:49:16

+0

只是在你的帖子后清理:-)恰好碰巧遇到了你的两个答案 - 因为我对你已经回答的问题感兴趣。我不跟踪:-) – 2012-04-05 20:50:10