“当前时间作为默认值”;时间“;在Mysql中

“当前时间作为默认值”;时间“;在Mysql中,mysql,time,Mysql,Time,我正在尝试将Phpmyadmin上的一列设置为“TIME”。如何将默认值设置为当前时间?只有时间,不包括日期 当前的时间戳不起作用,我也尝试了now(),但没有成功。我已经看过了,但没有找到任何具体的 无法为时间或日期列设置默认值。切换到时间戳列并使用date(t\u stamp)仅获取日期。或者时间(t_stamp)来获取时间。摘自问题中的: 从MySQL 8.0.13开始处理显式默认值 默认子句中指定的默认值可以是文本 常量或表达式。除了一个例外,将表达式括起来 括号内的默认值用于区分它们与

我正在尝试将Phpmyadmin上的一列设置为“TIME”。如何将默认值设置为当前时间?只有时间,不包括日期


当前的时间戳不起作用,我也尝试了now(),但没有成功。我已经看过了,但没有找到任何具体的

无法为时间或日期列设置默认值。切换到时间戳列并使用
date(t\u stamp)
仅获取日期。或者
时间(t_stamp)
来获取时间。

摘自问题中的:

从MySQL 8.0.13开始处理显式默认值 默认子句中指定的默认值可以是文本 常量或表达式。除了一个例外,将表达式括起来 括号内的默认值用于区分它们与文字 常量默认值

[……]

MySQL 8.0.13之前显式默认值的处理 除了一个例外,默认子句中指定的默认值 必须是文字常量;它不能是函数或表达式。 例如,这意味着您无法设置日期的默认值 列作为函数的值,例如NOW()或CURRENT_DATE。 例外情况是,对于TIMESTAMP和DATETIME列,您可以 将当前时间戳指定为默认值

因此,如果支持,请使用括号:

CREATE TABLE foo (
    what_time TIME NOT NULL DEFAULT (CURTIME())
);

你说的“没有发现任何具体的东西”是什么意思?你有MySQL 8.0.13作为你的链接状态吗?我的意思是,我找到了一些关于DATETIME的东西,它将“CURRENT_TIME”设置为默认值,但没有找到关于“TIME”的东西,例如put默认值的例子。看起来你必须使用触发器来填充默认值,因为insert.OP上的函数要求输入
TIME
,不
时间戳
您可以在数据库中设置此项吗?
create table test1234235 (foo int, ts timestamp default now());
insert into test1234235 (foo) values(1);
select * from test1234235;