【发布时间】:2012-06-15 19:01:39
【问题描述】:
这是我遇到datetime 问题的 T-SQL 代码
打开@form_dates
从@form_dates 获取下一个到@cid、@regdate、@compdate
/* 打印@regdate 打印@compdate 这在日期时间中正确具有值。例如:2012 年 3 月 28 日下午 6:03 打印@courseno */
WHILE @@FETCH_STATUS = 0 开始 设置@SQL = N'update tblname set cs' + CAST (@cid AS VARCHAR(10)) + '_begin = @rstring, cs' + CAST (@cid AS VARCHAR(10))+ '_end = @cstring where UserID = '+ CAST (@tempID AS VARCHAR(10))
声明@ParmDefinition nvarchar(500) SET @ParmDefinition = N'@rstring 日期时间,@cstring 日期时间'
执行 sp_ExecuteSQL @SQL,@ParmDefinition,
@rstring = @regdate,@cstring = @compdate
I have the values of @regdate and @compdate fetched from a cursor and are of the format
Jan 3 2012 2:30PM
Mar 28 2012 6:03PM
but these values are not reflecting in procedure output where I get the output:
谢谢。^
【问题讨论】:
-
欢迎使用 StackOverflow:如果您发布代码、XML 或数据示例,请在文本编辑器中突出显示这些行并单击“代码示例”按钮 (
{ }) 在编辑器工具栏上很好地格式化和语法突出显示它! -
请显示
@SQL, @regdate and @compdate的定义,并说明光标和值的来源。您要求我们解决这个完全盲目的问题。 -
当你简化时会发生什么(例如我给出的例子,你只是
SELECT)?我也不明白您所说的“这些值没有反映在过程输出中”是什么意思 - 您究竟是如何在代码示例的最后一行获得输出的?你在用PRINT @SQL吗?如果是这样,请记住,@SQL不会在您使用sp_executeSQL后替换字符串中的值。
标签: sql-server database sql-server-2008 tsql dynamic-sql