Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/css/36.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用CURDATE()作为默认值时,在mysql中创建表失败_Mysql_Phpmyadmin - Fatal编程技术网

使用CURDATE()作为默认值时,在mysql中创建表失败

使用CURDATE()作为默认值时,在mysql中创建表失败,mysql,phpmyadmin,Mysql,Phpmyadmin,我正在尝试使用phpmyadmin sql控制台创建下表: CREATE TABLE dates ( id int NOT NULL, id_date datetime NOT NULL DEFAULT CURDATE(), PRIMARY KEY (id) ) 但是,我得到以下错误: 它以红色显示“CURDATE()”,所以我想这就是问题所在 有人能帮我吗?您不能使用CURDATE()作为默认值 相反,您可以使用带有默认当前时间戳的时间戳列。那么你就得忽略它的时间部分 示例SQL代码: C

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

CREATE TABLE dates
(
id int NOT NULL,
id_date datetime NOT NULL DEFAULT CURDATE(),
PRIMARY KEY (id)
)
但是,我得到以下错误:

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

有人能帮我吗?

您不能使用CURDATE()作为默认值

相反,您可以使用带有默认当前时间戳的时间戳列。那么你就得忽略它的时间部分

示例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 身份证日期 1 2010-09-12
id\u date
应该是
date
还是
datetime
?您命名和使用它的方式更像是
日期
,但它被声明为
日期时间
。我认为如果它是日期时间,正确的函数应该是NOW(),对吗?我仍然认为它对NOW()不起作用,保持DATETIMENOW()也不起作用。你能给我看一些SQL代码作为例子吗?我非常感谢,因为我的SQL经验非常有限。我知道这已经很晚了,但是w3schools.com的参考是不正确的。我个人已经尝试过很多次,并确认它是错误的。同样来自MySQL文档:DEFAULT子句为列指定默认值。除了一个例外,默认值必须是常量;它不能是函数或表达式。例如,这意味着您不能将日期列的默认值设置为函数的值,例如NOW()或CURRENT_date。如果您尝试类似的操作,则以下操作有效。。奇怪。。我认为这是一个产品错误创建表employee(hire_date timestamp NOT NULL DEFAULT now());