mysql - 默认使用 CURDATE() 时在 mysql 中创建表失败

标签 mysql phpmyadmin

我正在尝试使用 phpmyadmin sql 控制台创建下表:

CREATE TABLE dates
(
id int NOT NULL,
id_date datetime NOT NULL DEFAULT CURDATE(),
PRIMARY KEY (id)
)

但是我收到以下错误: alt text

它以红色显示“CURDATE()”,所以我想这就是问题所在。

有人可以帮我吗?

最佳答案

您不能将 CURDATE() 用作默认值。

相反,您可以使用带有 DEFAULT CURRENT_TIMESTAMP 的 TIMESTAMP 列。然后你将不得不忽略它的时间部分。

示例 SQL 代码:

CREATE TABLE dates
(
    id int NOT NULL,
    id_date TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
    PRIMARY KEY (id)
);
INSERT INTO dates (id) VALUES (1);
SELECT id, DATE(id_date) AS id_date FROM dates;

结果:

id  id_date
1   2010-09-12

关于mysql - 默认使用 CURDATE() 时在 mysql 中创建表失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3696778/

相关文章:

php - 如何将两个数组的每个元素一起打印出来?

Mysql查询使用比较从表中获取最低值

php - Codeigniter- 函数总是返回 null

mysql - 找不到合适的 MySQL 排序规则来区分 a 和 á

mysql - 未设置 phpMyAdmin 权限

mysql - 条件 SQL ORDER BY

mysql - 将 SQL 插入从 PHPmyAdmin 拆分到 Adminer

mysql - SQL 从列中删除字符

php - 我如何在我的应用程序中使用 json?

php - 更新mysql和php后无法启动phpmyadmin