mysql - sql timestamp 错误的结果 - 现在

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

最佳答案

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/

相关文章:

php - 为什么MySQL查询调用失败?

mysql - 使用 MySQL 创建触发器,并在列名中包含连字符/破折号

sql - 如何只选择不在另一个表中的行而不获取另一个表的数据 - PLSQL

MySQL - 遍历行

c# - .Net Windows 服务抛出 EventType clr20r3 system.data.sqlclient.sql 错误

mysql - 多对多查询到多个列以进行报告

mysql - 从具有相似 ID 数据字段的表中选择唯一数据

php - 无法使用 array_shift() 获得结果

sql - 如何在go lang中测试事务回滚和提交

sql - 通过检查是否有任何值与查找表匹配来设置状态?