SQL将char转换为datetime

时间:2014-09-30 14:06:04

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

我有以下t-sql:

set @sql = 'select id, query from '+@tablename+' where '+GETUTCDATE()+'> cast(ExpirationDate as datetime)'
execute sp_executesql @sql

我收到此错误:

从字符串转换日期和/或时间时转换失败。

如何正确转换?

2 个答案:

答案 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