当前时间作为Mysql中“TIME”的默认值
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了当前时间作为Mysql中“TIME”的默认值相关的知识,希望对你有一定的参考价值。
我试图将phpmyadmin上的一列设置为“TIME”。如何将默认值设置为当前时间?只有时间,没有日期。
CURRENT_TIMESTAMP不起作用,我也尝试过now()但没有成功。我看过documentation,但没有找到任何具体的信息。
答案
无法为TIME或DATE列设置默认值。切换到TIMESTAMP列并使用date(t_stamp)
来获取日期。或者time(t_stamp)
来得到时间。
另一答案
摘自问题中的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())
);
另一答案
create table test1234235 (foo int, ts timestamp default now());
insert into test1234235 (foo) values(1);
select * from test1234235;
以上是关于当前时间作为Mysql中“TIME”的默认值的主要内容,如果未能解决你的问题,请参考以下文章
数据库mysql中,想建立一个默认值是系统当前时间的字段,那么这个字段的类型必须是timestam