尝试创建具有UTC_时间戳的MySQL表

尝试创建具有UTC_时间戳的MySQL表,mysql,phpmyadmin,Mysql,Phpmyadmin,我希望我在MySQL中创建的表如下所示: CREATE TABLE Test_Tbl ( Create_Date datetime Default UTC_TIMESTAMP() ); 然而,我不断地得到一个错误。我已成功地将UTC_TIMESTAMP()替换为以下各项,并添加了该表 NOW() CURRENT_TIMESTAMP() LOCALTIME() LOCALTIMESTAMP() 由于我无法使UTC功能正常工作,我想PHPMyAdmin中的设置可能需要更改?(UTC_日期和UTC

我希望我在MySQL中创建的表如下所示:

CREATE TABLE Test_Tbl
(
Create_Date datetime Default UTC_TIMESTAMP()
);
然而,我不断地得到一个错误。我已成功地将UTC_TIMESTAMP()替换为以下各项,并添加了该表

NOW()
CURRENT_TIMESTAMP()
LOCALTIME()
LOCALTIMESTAMP()
由于我无法使UTC功能正常工作,我想PHPMyAdmin中的设置可能需要更改?(UTC_日期和UTC_时间也会失败。)
**
我正在XAMP安装中工作。
错误状态为“应使用逗号或结束括号。(靠近”(“位置76)”
将数据类型更改为时间戳没有任何区别。
谢谢

以下语句将返回当前UTC日期和时间

SELECT UTC_TIMESTAMP,UTC_TIMESTAMP();  

如中更详细的讨论,此处的语法不正确,因为函数
UTC_TIMESTAMP();
不能在此处使用。此查询即使在命令行中也会失败,因此升级或修改phpMyAdmin也无济于事


答案的简短版本是,由于MySQL已经将时间戳列存储为UTC时间,因此此函数在这种情况下不会起多大作用。通常,当您放置和检索数据时,MySQL会自动将其转换回客户端使用的时区。您可能还对使用其他类型(如DATETIME to)感兴趣。

您建议的Create代码导致了以下错误:应为逗号或右括号。(第58位靠近“without”)和无法识别的语句类型。(第86位靠近“now”)。如果我在您输入的代码中输入的内容过于直白,并且不知道我应该做什么,我深表歉意。我在不知道为什么我不能在create语句中使用UTC函数的情况下继续前进。在我的用例中,允许日期在1970年之前和2038年之后的日期时间数据类型是不相关的(至少几年)。因此,我将数据类型更改为TIMESTAMP,以便在默认值为Now()时保存UTC值。本教程帮助我学习-。时间戳数据类型存储UTC值,但基于连接的时区对其进行转换以便于显示。XAMPP安装中包含哪个phpMyAdmin版本?版本信息可在主页的右侧列中找到。phpMyAdmin版本为4.5.1。(有更新版本4.6.6可用。)这似乎是的副本。这不是使用
UTC_TIMESTAMP()的正确位置
,甚至在MySQL命令行客户端也会导致错误。@Isaac我同意。感谢您指导我写这篇文章。我仍然不明白为什么不能在创建表时使用UTC函数,但如果数据类型为“timestamp”,则值将存储为UTC值。我想我在Create语句中使用UTC函数的重点是是什么原因导致您建议的帖子没有显示在我的搜索中。我是将其标记为重复还是管理员?您是否建议我编辑我的问题以指向其他帖子,作为此问题未来读者的前兆?谢谢。
SELECT UTC_TIMESTAMP,UTC_TIMESTAMP();