我正在运行此查询并收到错误:
select mst_machine.MachineName,
FROM_UNIXTIME(trn_dacs.DateTime,'%Y-%m-%d %H:%i:%s') as dataTimeStamp,
trn_dacs.TargetWeight as dataValue,
trn_dacs.Weight
FROM trn_dacs
INNER JOIN mst_machine ON trn_dacs.MachineNo = mst_machine.MachineNo
where dataTimeStamp >= '1/31/2018 7:21:16 AM'
错误是:
1054 - Unknown column dataTimeStamp in 'where clause'
我对 MySQL 的熟悉程度不如对 SQL Server 的熟悉程度。我确信我以前在 SQL Server 中做过这样的事情。
如果没有 where 子句,查询可以正常运行,并且列标题可以正确显示 dataTimeStamp。 (供引用)。
另外 - 我知道我可以通过用 trn_dacs.DateTime 替换 dataTimeStamp 来做到这一点,但是,我需要使用该时间戳的别名,以便我始终可以为任何表结构自动生成 where 子句。
最佳答案
不能在 where 子句中使用别名,请使用:
WHERE FROM_UNIXTIME(trn_dacs.DateTime,'%Y-%m-%d %H:%i:%s') >= '1/31/2018 7:21:16 AM'
代替:
其中 dataTimeStamp >= '1/31/2018 7:21:16 AM'
关于MySQL - 这个查询有什么问题?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48543503/