mysql - 在插入语句的子查询中执行日期和时间计算

标签 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;

最佳答案

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

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

关于mysql - 在插入语句的子查询中执行日期和时间计算,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17624069/

相关文章:

php - Moodle 中不存在表 'mdl_sessions'

mysql - 如何使用 MySQL 命令显示数据库中最后一分钟(即当前分钟)的行?

mysql - Left Join + count + MySQL 求和

mysql - 使用更好的 MySQL 查询对最后消息进行分组

sql - SQL查询可在PL/SQL中使用,但不能在Visual Studio中使用

mysql - 在 Fedora 上安装 MySQL gem 时出现问题

MySQL 导入行数在同一文件和数据库上不一致

php - Laravel orderby 分数/日期(作为分数)

sql - MS Sql 连接空值

mysql - 使用 mysql 查询从表中选择最接近的值