mysql 生成日历

SELECT
	max( CASE dw WHEN 2 THEN dm END ) AS Mo,
	max( CASE dw WHEN 3 THEN dm END ) AS Tu,
	max( CASE dw WHEN 4 THEN dm END ) AS We,
	max( CASE dw WHEN 5 THEN dm END ) AS Th,
	max( CASE dw WHEN 6 THEN dm END ) AS Fr,
	max( CASE dw WHEN 7 THEN dm END ) AS Sa,
	max( CASE dw WHEN 1 THEN dm END ) AS Su 
FROM
	(
	SELECT
		DATE_FORMAT( dy, '%u' ) wk,
		DATE_FORMAT( dy, '%d' ) dm,
		DATE_FORMAT( dy, '%w' ) + 1 dw 
	FROM
		(
		SELECT
			DATE_ADD( dy, INTERVAL t500.id - 1 DAY ) dy,
			x.mth 
		FROM
			(
			SELECT
				DATE_ADD(
					CURRENT_DATE,
					INTERVAL - DAYOFMONTH( CURRENT_DATE ) + 1 DAY 
				) dy,
				DATE_FORMAT( CURRENT_DATE, '%m' ) mth 
			FROM
			DUAL 
			) x,
			t500 
		WHERE
			t500.id <= 31 
			AND DATE_FORMAT(
				DATE_ADD( dy, INTERVAL t500.id - 1 DAY ),
				'%m' 
			) = mth 
		) y 
	) z 
GROUP BY
	wk 
ORDER BY
	wk

转载于:https://my.oschina.net/u/3238650/blog/3020394

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值