当前时间作为Mysql中“TIME”的默认值

问题描述 投票:-1回答:3

我试图将Phpmyadmin上的一列设置为“TIME”。如何将默认值设置为当前时间?只有时间,没有日期。

CURRENT_TIMESTAMP不起作用,我也尝试过now()但没有成功。我看过documentation,但没有找到任何具体的信息。

mysql time
3个回答
1
投票

无法为TIME或DATE列设置默认值。切换到TIMESTAMP列并使用date(t_stamp)来获取日期。或者time(t_stamp)来得到时间。


1
投票

摘自问题中的documentation link

从MySQL 8.0.13开始处理显式默认值

DEFAULT子句中指定的默认值可以是文字常量或表达式。除了一个例外,将表达式默认值括在括号内,以将它们与文字常量默认值区分开来。

[…]

在MySQL 8.0.13之前处理显式默认值

除了一个例外,DEFAULT子句中指定的默认值必须是文字常量;它不能是一个功能或表达。这意味着,例如,您不能将日期列的默认值设置为函数的值,例如NOW()或CURRENT_DATE。例外情况是,对于TIMESTAMP和DATETIME列,您可以将CURRENT_TIMESTAMP指定为默认值。

因此,在支持时,使用括号:

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

Demo


0
投票
create table test1234235 (foo int, ts timestamp default now());
insert into test1234235 (foo) values(1);
select * from test1234235;
© www.soinside.com 2019 - 2024. All rights reserved.