哪个网站做自媒体比较好,珠海外贸网站建设,网站开发的实训周,做网站的设计流程有的时候做数据清洗的时候 #xff0c; 如果表中数据在某一天没有记录#xff0c;但是业务要求不能有缺失日期#xff0c;那么就需要我们将这些缺失日期补上。这个前提就是我们先要有一张包含所有日期的列表#xff08;作为左表#xff09;#xff0c;供我们进行匹配 如果表中数据在某一天没有记录但是业务要求不能有缺失日期那么就需要我们将这些缺失日期补上。这个前提就是我们先要有一张包含所有日期的列表作为左表供我们进行匹配left join进而补上缺失日期。 Python代码
import datetimedef Date_interval_list(date_start None,date_end None):if date_start is None:date_start 2000-01-01if date_end is None:date_end datetime.datetime.now().strftime(%Y-%m-%d)date_startdatetime.datetime.strptime(date_start,%Y-%m-%d)date_enddatetime.datetime.strptime(date_end,%Y-%m-%d)date_list []date_list.append(date_start.strftime(%Y-%m-%d))while date_start date_end:date_startdatetime.timedelta(days1)# 日期加一天date_list.append(date_start.strftime(%Y-%m-%d))# 日期存入列表print(date_list)if __name__ __main__:Date_interval_list(2018-12-25, 2019-01-07)
运行结果
[2018-12-25, 2018-12-26, 2018-12-27, 2018-12-28,
2018-12-29, 2018-12-30, 2018-12-31, 2019-01-01,2019-01-02, 2019-01-03, 2019-01-04, 2019-01-05,2019-01-06, 2019-01-07] MySQL代码
DELIMITER $$
DROP PROCEDURE IF EXISTS create_calendar $$
CREATE PROCEDURE create_calendar (s_date DATE, e_date DATE)
BEGINSET createSql CREATE TABLE IF NOT EXISTS calendar (date date NOT NULL,UNIQUE KEY unique_date (date) USING BTREE)ENGINEInnoDB DEFAULT CHARSETutf8; prepare stmt from createSql; execute stmt; WHILE s_date e_date DOINSERT IGNORE INTO calendar VALUES (DATE(s_date)) ;SET s_date s_date INTERVAL 1 DAY ;END WHILE ; END$$
DELIMITER ;CALL create_calendar (2018-12-25, 2019-01-07); 运行结果
MySQL的运行结果是直接生成一张表calendar表中包含日期间隔里的所有日期date。 以前总觉得MySQL的作用很小大概就是存储数据 简单清洗 数据统计 以后要刮目相看了就像刮目相看 Excel 一样。