我可以对计算的日期字段进行 WHERE 操作吗?
我有一个查找字段,它在 SQL 中写得很糟糕,不幸的是我无法更改它。但基本上它将日期存储为字符,例如“2010 年 7 月”或“2009 年 6 月”(以及其他非日期数据)。我想先提取日期(我使用 LIKE 运算符),然后根据日期范围提取数据。
SELECT
BusinessUnit,
Lookup,
ReleaseDate
FROM
(
SELECT TOP 10
LookupColumn As Lookup,
BU as BusinessUnit,
CONVERT(DATETIME, REPLACE(LookupColumn,'-',' ')) as ReleaseDate
FROM
[dbo].[LookupTable]
WHERE
LookupColumn LIKE N'%-2010'
) MyTable
ORDER BY ReleaseDate
WHERE ReleaseDate = '2010-02-01'
我在使用 WHERE 运算符时遇到问题。我假设创建一个子查询来封装计算字段将允许我对其进行操作,例如 WHERE 但也许我错了。底线是否可以对计算字段进行操作?
更新:确实我把订单搞混了,此外,LIKE 运算符还返回非日期值,例如 TBD-2010,这让我很困惑。