我有以下t-sql:
set @sql = 'select id, query from '+@tablename+' where '+GETUTCDATE()+'> cast(ExpirationDate as datetime)'
execute sp_executesql @sql
我收到此错误:
从字符串转换日期和/或时间时转换失败。
如何正确转换?
答案 0 :(得分:2)
只需将函数调用置于查询字符串中:
set @sql = 'select id, query from '+@tablename+' where GETUTCDATE() > cast(ExpirationDate as datetime)';
在致电sp_executesql
之前,我认为没有任何优势。
答案 1 :(得分:0)
SET @sql =
'SELECT id, query
FROM '+@tablename+'
WHERE CAST('''+CAST(GETUTCDATE() AS VARCHAR(30))+''' AS DATETIME)
> CAST(ExpirationDate AS datetime)'
EXECUTE sp_executesql @sql