我正在努力做到这一点
SELECT CAST(date AS datetime) + CAST(time AS datetime) AS NewDT, variable, value
FROM batch
WHERE (NewDT <= @BatchStartDate)但是我得到了错误"Invalid colum NewDT“问题是日期和时间在数据库的两列中。
发布于 2012-10-17 14:59:50
我猜您正在使用MS SQL Server。您不能在WHERE子句上引用别名,您应该使用完整的CAST(date AS datetime) + CAST(time AS datetime),因此它将是:
SELECT CAST(date AS datetime) + CAST(time AS datetime) AS NewDT, variable, value
FROM batch
WHERE (CAST(date AS datetime) + CAST(time AS datetime) <= @BatchStartDate)发布于 2012-10-17 15:04:03
(还可以猜测您使用的是SQL Server)
您不能在where子句中使用别名,因此您可以使用整个表达式(如Yaroslav的答案所示),也可以将原始select包装为子查询,如下所示:
select * from
(
SELECT CAST(date AS datetime) + CAST(time AS datetime) AS NewDT, variable, value
FROM batch
)
WHERE NewDT <= @BatchStartDatehttps://stackoverflow.com/questions/12928714
复制相似问题