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