我在使用 MySQL 5.7 时遇到麻烦 - 在 TIMESTAMP 列上选择。这里来自建表说明:
`utc_timestamp` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
当我做的时候
select * from table
我看到 utc_timestamp 结果很好
但如果我这样做
select utc_timestamp from table
显示的数据不包含表中存储的日期,而是当前时间!
为什么这两个请求给我不同的 utc_timestamp 列数据值?我以前在 MySQL、PostgreSQL、MSSQL 等方面工作时从未见过这个,所以不确定是因为我不知道什么还是 MySQL 错误?
我尝试了不同的 SQL 客户端(MySQL Workbench 6.1 和 HeidiSQL),结果是一样的,所以这肯定发生在服务器端。
最佳答案
https://dev.mysql.com/doc/refman/5.5/en/keywords.html
utc_timestamp
是mysql的保留关键字,尝试在查询中加反引号
select `utc_timestamp` from table
我认为最好更改列名,不要使用类似于保留语言关键字的列名,这样您就不会产生这样的混淆。
关于mysql - sql timestamp 错误的结果 - 现在,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41888376/