【发布时间】:2020-12-15 21:24:22
【问题描述】:
我要做的就是从每个“location”中提取最新的“Scan”(因此是“LastScan”),然后找出其中任何一个是否超过 2 小时“old” (这会使它们过期)。
Select cast(max(entered_date) as int) as 'LastScan', location
FROM housing_activity
WHERE 'LastScan' <= Datediff(HH,-2,GETDATE())
Group by location
这是我的错误:
Msg 245, Level 16, State 1, Line 2
Conversion failed when converting the varchar value 'LastScan' to data type int.
【问题讨论】:
-
在 SqlServer 中,您应该在
[ ]中引用标识符,或者可能是双引号 (" ")。见stackoverflow.com/a/45865263/121309 -
从不对列名使用单引号。你犯了一个永远不应该发生的错误(如果你做出那个改变,你会得到另一个错误,
LastScan是未知的,但至少这是有道理的)。
标签: sql sql-server casting column-alias