首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

SQL - Inster into with now()减一天

基础概念

INSERT INTO ... SELECT ... 是一种 SQL 语句,用于从一个表中选择数据并将其插入到另一个表中。NOW() 是 MySQL 中的一个函数,用于获取当前的日期和时间。如果你想插入当前日期减去一天的数据,可以使用 DATE_SUB() 函数。

相关优势

  1. 灵活性:可以灵活地从一个表中选择数据并插入到另一个表中。
  2. 时间操作:通过 DATE_SUB() 函数,可以进行日期和时间的计算,如减去一天。
  3. 自动化:结合 NOW() 函数,可以实现自动获取当前时间并进行操作。

类型

  • 单表插入:从一个表中选择数据插入到同一个表中。
  • 多表插入:从一个或多个表中选择数据插入到另一个表中。

应用场景

假设你有一个订单表 orders,你需要每天生成前一天的订单统计报表,并将其插入到一个新的表 daily_orders_report 中。

示例代码

假设 orders 表结构如下:

代码语言:txt
复制
CREATE TABLE orders (
    id INT AUTO_INCREMENT PRIMARY KEY,
    order_date DATETIME,
    amount DECIMAL(10, 2)
);

daily_orders_report 表结构如下:

代码语言:txt
复制
CREATE TABLE daily_orders_report (
    report_date DATE,
    total_amount DECIMAL(10, 2)
);

插入前一天订单统计报表的 SQL 语句如下:

代码语言:txt
复制
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() 函数用于计算某一列的总和,在统计报表中常用于计算总金额。

参考链接

希望这些信息对你有所帮助!如果有更多问题,请随时提问。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

没有搜到相关的合辑

领券