INSERT INTO ... SELECT ...
是一种 SQL 语句,用于从一个表中选择数据并将其插入到另一个表中。NOW()
是 MySQL 中的一个函数,用于获取当前的日期和时间。如果你想插入当前日期减去一天的数据,可以使用 DATE_SUB()
函数。
DATE_SUB()
函数,可以进行日期和时间的计算,如减去一天。NOW()
函数,可以实现自动获取当前时间并进行操作。假设你有一个订单表 orders
,你需要每天生成前一天的订单统计报表,并将其插入到一个新的表 daily_orders_report
中。
假设 orders
表结构如下:
CREATE TABLE orders (
id INT AUTO_INCREMENT PRIMARY KEY,
order_date DATETIME,
amount DECIMAL(10, 2)
);
daily_orders_report
表结构如下:
CREATE TABLE daily_orders_report (
report_date DATE,
total_amount DECIMAL(10, 2)
);
插入前一天订单统计报表的 SQL 语句如下:
INSERT INTO daily_orders_report (report_date, total_amount)
SELECT DATE_SUB(CURDATE(), INTERVAL 1 DAY) AS report_date, SUM(amount) AS total_amount
FROM orders
WHERE order_date >= DATE_SUB(CURDATE(), INTERVAL 1 DAY)
AND order_date < CURDATE();
DATE_SUB()
函数?原因:DATE_SUB()
函数用于对日期和时间进行减法操作,可以方便地获取前一天的日期。
CURDATE()
函数?原因:CURDATE()
函数用于获取当前的日期,结合 DATE_SUB()
函数可以方便地计算前一天的日期。
SUM()
函数?原因:SUM()
函数用于计算某一列的总和,在统计报表中常用于计算总金额。
希望这些信息对你有所帮助!如果有更多问题,请随时提问。
领取专属 10元无门槛券
手把手带您无忧上云