mysql中“time”的默认值为当前时间

uhry853o  于 2021-06-15  发布在  Mysql
关注(0)|答案(3)|浏览(498)

我试图在phpmyadmin上设置一个列,只显示“时间”。如何将默认值设置为当前时间?只有时间,不包括日期。
当前的时间戳不起作用,我也尝试过now(),但没有成功。我看了文件,但没有找到任何具体的资料。

q9yhzks0

q9yhzks01#

create table test1234235 (foo int, ts timestamp default now());
insert into test1234235 (foo) values(1);
select * from test1234235;
dsekswqp

dsekswqp2#

问题文档链接摘录:

mysql 8.0.13的显式默认值处理

default子句中指定的默认值可以是文字常量或表达式。除了一个例外,将表达式默认值括在括号内,以区别于文本常量默认值。
[…]

mysql 8.0.13之前显式默认值的处理

除了一个例外,default子句中指定的默认值必须是一个文本常量;它不能是函数或表达式。例如,这意味着您不能将日期列的默认值设置为函数的值,例如now()或current\u date。例外情况是,对于timestamp和datetime列,可以将current\u timestamp指定为默认值。
因此,如果支持,请使用括号:

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

演示

vdzxcuhz

vdzxcuhz3#

无法为时间或日期列设置默认值。切换到时间戳列并使用 date(t_stamp) 去约会。或者 time(t_stamp) 去争取时间。

相关问题