首页 > 解决方案 > 将计算日期列添加到 MySQL 数据集

问题描述

我有一列dateTime由格式为“MM-DD-YYYY,hh-mm-ss”的日期组成,我需要在同一张表上创建一个 STORED 列以消除时间元素。我试过了:

ALTER TABLE table ADD COLUMN startOfDayAS(date( dateTime)) STORED;

但这会产生错误的语法错误。我如何使它工作?我认为错误是由于 AS 部分造成的。

标签: mysqldatabase

解决方案


首先,当您提出问题并告诉您有错误时,请始终在您的帖子中显示错误消息。

其次,要使用 STORED 列,您需要 MySQL 5.7 实例或更高版本。目前我只有一个 5.6 实例正在运行,所以我无法测试查询。但是查看 MySQL 文档,我建议使用以下查询语法:

ALTER TABLE <table-name> ADD COLUMN <column-name> DATE GENERATED ALWAYS AS (DATE_FORMAT(<name-of-datetime-column>, `%Y-%m-%d`)) STORED COMMENT '<description>';

只需将占位符替换为您拥有的名称即可。为了确定并了解事情是如何工作的,请始终查看有关该主题的 MySQL 参考手册。

请参阅:https ://dev.mysql.com/doc/refman/5.7/en/create-table-generated-columns.html


推荐阅读