sql timestamp错误的结果 - 现在

时间:2017-01-27 06:53:44

标签: mysql sql

我遇到了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),结果是一样的,所以这肯定发生在服务器端。

2 个答案:

答案 0 :(得分:2)

https://dev.mysql.com/doc/refman/5.5/en/keywords.html

utc_timestamp是mysql中的保留关键字,尝试在查询中添加反引号

select `utc_timestamp` from table

我认为最好更改列名,而不是命名与保留语言关键字类似的列,这样就不会出现这种混淆。

答案 1 :(得分:1)

根据这里的手册https://dev.mysql.com/doc/refman/5.5/en/date-and-time-functions.html#function_utc-timestamp Utc_timestamp是一个内置的var,尝试做     从表中选择table.utc_timestamp 或者给列添加另一个而不是保留的名称,而不是让你和其他人混淆。