1
在SQL Server 2005数据库中,表的nvarchar列包含datetime或某个字符串值。例如03/11/2011 4:00:07 AM
或Completed
。如何把日期时间条件放在TSQL中nvarchar列的where子句中?
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
我需要数据,其中状态字段的日期时间和日期时间介于日期1和日期2之间。
@Jeff:你编辑它。但SWL是什么? – User13839404 2011-04-20 18:18:57
它被称为错字User13839404。随时修复它,而不是评论。 – 2011-04-20 18:25:33
我希望这不是一个需要高效的查询。它不是“SARGable”(请参阅google),最大的问题是列的模糊数据类型。也许在你的上下文中没问题,但是如果查询很慢,你需要规范化内容,最好是一个日期时间。 – dkretz 2011-04-20 18:50:39