MySQL - 这个查询有什么问题?

标签 mysql sql

我正在运行此查询并收到错误:

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/

相关文章:

mysql - 通过匹配多列从多个表中选择数据

sql - 查询以检查 SQL Server 中的重叠范围?

sql - JCR SQL2 节点属性和所有子节点中的全文搜索

mysql - 从具有外键约束的 Mysql 表中删除数据的脚本

sql - 与 Oracle 动态 SQL 斗争

mysql - 错误 1062 (23000) : Duplicate entry '@localhost.localdomain' for key 'PRIMARY'

php - 使用 PHP 对大量 MySQL 表进行分组和排序

mysql - 将 blob 字段中的字节数转换为数字

Java hibernate SQL 错误 : check right syntax to use near 'condition, description, name, pictures, price, status, User_UserAddress_idUserAd' at line 1

php - 合并两个松散连接的 MySQL 表