首页 > 数据库 > mysql教程 > 如何填充 MySQL 数据检索中的缺失日期?

如何填充 MySQL 数据检索中的缺失日期?

Barbara Streisand
发布: 2024-12-12 19:09:11
原创
357 人浏览过

How to Populate Missing Dates in MySQL Data Retrievals?

检索日期之间的数据:填充空记录

在 MySQL 中,选择指定日期范围内的数据通常是使用 BETWEEN 运算符来实现的。然而,这种方法可能会导致缺少没有数据的日期。为了解决这个问题,采用了涉及“日历表”的技术。

日历表的概念是创建一个包含所需范围内的日期序列的表。这是使用以下代码实现的:

CREATE TABLE ints (i INTEGER);
INSERT INTO ints VALUES (0), (1), (2), (3), (4), (5), (6), (7), (8), (9);
登录后复制

此表提供从 0 到 9 的数字范围。为了生成日历表,我们将整数与其自身多次连接以创建日期间隔列表:

SELECT '2009-06-25' + INTERVAL a.i * 10 + b.i DAY as date
FROM ints a JOIN ints b
ORDER BY a.i * 10 + b.i
登录后复制

结果是一个表格,其中包含从“2009-06-25”到“2009-06-25”的日期序列'2009-07-04'。为了检索数据,我们将日历表与原始表左连接:

SELECT cal.date, tbl.data
FROM (
    SELECT '2009-06-25' + INTERVAL a.i * 10 + b.i DAY as date
    FROM ints a JOIN ints b
    ORDER BY a.i * 10 + b.i
) cal LEFT JOIN tbl ON cal.date = tbl.date
WHERE cal.date BETWEEN '2009-06-25' AND '2009-07-01';
登录后复制

此查询返回“2009-06-25”和“2009-07-01”之间所有日期的数据,包括没有数据但填充有“0”的行。

以上是如何填充 MySQL 数据检索中的缺失日期?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板