我正在尝试将Phpmyadmin上的列设置为“ TIME”。如何将默认值设置为当前时间?只有时间,没有日期。
CURRENT_TIMESTAMP不起作用,我也尝试过now(),但没有成功。我查看了documentation,但未发现任何具体信息。
答案 0 :(得分:1)
无法为TIME或DATE列设置默认值。切换到TIMESTAMP列,然后使用date(t_stamp)
来获取日期。或time(t_stamp)
来获取时间。
答案 1 :(得分:1)
问题中documentation link的摘录:
从MySQL 8.0.13开始的显式默认值的处理
DEFAULT子句中指定的默认值可以是文字 常数或表达式。除了一个例外,将表达式括起来 括号内的默认值可将它们与文字区分开 恒定的默认值。
[…]
MySQL 8.0.13之前的显式默认值处理
除一个例外,DEFAULT子句中指定的默认值 必须是文字常量;它不能是函数或表达式。 例如,这意味着您不能为日期设置默认值 column为函数的值,例如NOW()或CURRENT_DATE。 唯一的例外是,对于TIMESTAMP和DATETIME列,您可以 将CURRENT_TIMESTAMP指定为默认值。
因此,在支持的情况下,请使用括号:
\n
答案 2 :(得分:0)
create table test1234235 (foo int, ts timestamp default now());
insert into test1234235 (foo) values(1);
select * from test1234235;