本文主要是介绍mysql sql语句生成日历表,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
转载:http://blog.csdn.net/u010363836/article/details/52788358
mysql sql语句生成日历点击打开链接表 (主要用于按月,按天group by分组统计时,有些日期没有记录,需要补0)
从自定义的开始时间,生成1万条记录
CREATE TABLE if not exists num (i int);-- 创建一个表用来储存0-9的数字
INSERT INTO num (i) VALUES (0), (1), (2), (3), (4), (5), (6), (7), (8), (9);-- 生成0-9的数字,方便以后计算时间CREATE TABLE if not exists calendar(datelist date); -- 生成一个存储日期的表,datalist是字段名-- 这里是生成并插入日期数据
INSERT INTO calendar(datelist) SELECTadddate(( -- 这里的起始日期,你可以换成当前日期DATE_FORMAT("2010-1-1", '%Y-%m-%d') ),numlist.id) AS `date`
FROM(SELECTn1.i + n10.i * 10 + n100.i * 100 + n1000.i * 1000 AS idFROMnum n1CROSS JOIN num AS n10CROSS JOIN num AS n100CROSS JOIN num AS n1000) AS numlist;
从自定义的开始时间,生成10万条记录
CREATE TABLE num (i int);-- 创建一个表用来储存0-9的数字
INSERT INTO num (i) VALUES (0), (1), (2), (3), (4), (5), (6), (7), (8), (9);-- 生成0-9的数字,方便以后计算时间CREATE TABLE if not exists calendar(datelist date); -- 生成一个存储日期的表,datalist是字段名-- 这里是生成并插入日期数据
INSERT INTO calendar(datelist) SELECTadddate(( -- 这里的起始日期,你可以换成当前日期DATE_FORMAT("2016-1-1", '%Y-%m-%d') ),numlist.id) AS `date`
FROM(SELECTn1.i + n10.i * 10 + n100.i * 100 + n1000.i * 1000+ n10000.i * 10000 AS idFROMnum n1CROSS JOIN num AS n10CROSS JOIN num AS n100CROSS JOIN num AS n1000CROSS JOIN num AS n10000) AS numlist;
这篇关于mysql sql语句生成日历表的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!