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

时间:2018-12-23 18:37:18

标签: mysql time

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

CURRENT_TIMESTAMP不起作用,我也尝试过now(),但没有成功。我查看了documentation,但未发现任何具体信息。

3 个答案:

答案 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

Demo

答案 2 :(得分:0)

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