如何在MySql的create table自身中创建一个需要当前时间戳并添加一些分钟的属性(例如,添加30分钟)。
create table (order_time timestamp default current_timestamp,
est_time timestamp default current_timestamp date_add(min,30));
shows syntax error
或在更改时
alter table orders modify est_time timestamp date_add(order_time,interval 30 min);
create table (order_time timestamp default current_timestamp,
est_time timestamp default current_timestamp date_add(min,30));
最佳答案
如果希望est_time
总是比order_time
晚半小时,则可以使用生成的列:
create table orders(id int,
order_time timestamp default current_timestamp,
est_time timestamp generated always as (order_time + interval 30 minute));
然后,您可以插入带有或不带有
order_time
值的值,并且est_time
将是order_time
+ 30分钟:insert into orders (id, order_time) values (1, '2019-08-08 12:30:00');
insert into orders (id) values (2);
select * from orders
输出(截至2019-08-08 7:43:04):
id order_time est_time
1 2019-08-08 12:30:00 2019-08-08 13:00:00
2 2019-08-08 07:43:04 2019-08-08 08:13:04
Demo on dbfiddle
关于mysql - 在创建表本身中使用Date_add()或add_time()函数,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/57406191/