如何将日期时间条件放在SQL中nvarchar列的where子句中?

时间:2011-04-20 17:57:07

标签: sql-server-2005 tsql

在SQL Server 2005数据库中,表的nvarchar列包含datetime或某个字符串值。例如03/11/2011 4:00:07 AMCompleted

 select * from log 
 where status >= 
    case isdate(status) 
    when 1 then convert(datetime, '03/11/2011 12:00:01 AM') 
    else '' 
    end 
and status <= 
    case isdate(status) 
    when 1 then convert(datetime, '03/11/2011 4:00:00 PM') 
    else '' 
end

我需要数据,其中status字段有datetime,datetime在date1和date2之间。

1 个答案:

答案 0 :(得分:0)

WHERE 
CASE WHEN ISDATE(status) = 1 
     THEN CONVERT(DATETIME,status) 
END BETWEEN '20110311 12:00:01' AND '20110418 16:00:00'