在insert语句中的子查询中执行日期和时间计算

时间:2013-07-12 21:11:26

标签: mysql sql

任何人都可以建议我如何在一个查询中插入当前日期+租借期限?代码块中的语法不起作用,但DATE_ADD(NOW(),INTERVAL 1 DAY)有效。我试图让INTERVAL中的整数基于rental_period。我可以通过多个查询执行此操作,但我正在尝试执行此操作(如果可能)。

INSERT INTO rental_details (rental_due_date, vg_id, rental_id) SELECT DATE_ADD( 
NOW(), INTERVAL rental_period DAY), vg_id, 1  FROM status INNER JOIN video_games as vg ON
vg.status_id = status.status_id WHERE vg_id = 3;

感谢。

这有效但我需要当前日期+ rental_period(rental_period是一个整数,表示添加到当前日期的天数):

INSERT INTO rental_details (rental_due_date, vg_id, rental_id) select rental_period,
 vg_id, 1  from status inner join video_games as vg on vg.status_id = status.status_id 
where vg_id = 3;

1 个答案:

答案 0 :(得分:1)

您的语法似乎是正确的。因此,它可能与您的列的数据类型有关。您尚未提供详细信息,但以下工作:

create table vg_status 
( rental_period integer);

create table rental_details
(due_date date);

insert into vg_status values (3);

insert into vg_status values (300);

insert into rental_details 
select date_add(now(), interval rental_period day)
from vg_status

select *
from rental_details

您可以看到the output in SQL Fiddle