MySQL 数据库生成连续日期

要想在 MySQL 中直接用 SQL 生成连续日期,有一种生成方法是可以借助 mysql 用户下的 help_topic 表实现,脚本如下:

SELECT
	date_format( date_sub( '20220810', INTERVAL ( @i := @i - 1 ) DAY ), '%Y%m%d' ) AS days 
FROM
	mysql.help_topic
	JOIN ( SELECT @i := 1 ) c 
WHERE
	help_topic_id <= (
	TIMESTAMPDIFF( DAY, '20220810', '20220820' ))

通过制定开始日期和结束日期,直接可以生成连续日期列表,结果如下:

注意:如果执行报错如下:

> 1142 - SELECT command denied to user 'test'@'192.168.220.100' for table 'help_topic'

说明执行脚本的用户没有表 mysql.help_topic 的权限,可以通过数据库 root 用户进行赋权,赋权脚本如下:

grant select on mysql.help_topic to test;

如果想要不同的日期格式,自行修改日期格式化串即可,比如修改为'%Y/%m/%d',结果请自行尝试。

另外还有其它方法,比如存储过程实现,或者自定义函数实现均可,请自行查阅。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值