sql作业和日期时间参数
另一位开发人员创建了一个存储过程,该过程设置为每月作为 SQL 作业运行。它需要一个日期时间参数。当我尝试在作业或查询窗口中调用它时,我收到错误')'附近的语法不正确
。执行它的调用是:
exec CreateHeardOfUsRecord getdate()
当我给它一个硬编码日期(如 exec CreateHeardOfUsRecord '4/1/2010')时,它工作正常。知道为什么我不能在这种情况下使用 getdate() 吗?谢谢。
Another developer created a stored procedure that is set up to run as a sql job each month. It takes one parameter of datetime. When I try to invoke it in the job or in just a query window I get an error Incorrect syntax near ')'
. The call to execute it is:
exec CreateHeardOfUsRecord getdate()
When I give it a hard coded date like exec CreateHeardOfUsRecord '4/1/2010'
it works fine. Any idea why I can't use getdate()
in this context? Thanks.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(4)
通过 Exec 传递的参数必须是常量或变量。 GetDate() 被归类为函数。您需要声明一个变量来保存 GetDate() 的结果,然后将其传递给存储过程。
Parameters passed with Exec must either be constants or variables. GetDate() is classed as a function. You need to declare a variable to hold the result of GetDate(), then pass it to the stored procedure.
通过查看 EXECUTE (Transact-SQL)
你只能传入一个常量值或一个变量或 DEFAULT 子句
尝试一下:
输出:
by looking at EXECUTE (Transact-SQL)
you can only pass in a constant value or a variable or the DEFAULT clause
try it out:
output:
尝试传递 Convert(varchar, GetDate(), 101)
Try passing Convert(varchar, GetDate(), 101)
这里使用Km的代码是一种方法
Using Km's code here is a way to do it