1. 程式人生 > >mysql 獲取當前月的第一天到昨日的所有日期

mysql 獲取當前月的第一天到昨日的所有日期

SELECT 
	ADDDATE(y.first, x.d - 1) as d
FROM
	(
	SELECT 1 AS d UNION ALL
	SELECT 2 UNION ALL
	SELECT 3 UNION ALL
	SELECT 4 UNION ALL
	SELECT 5 UNION ALL
	SELECT 6 UNION ALL
	SELECT 7 UNION ALL
	SELECT 8 UNION ALL
	SELECT 9 UNION ALL
	SELECT 10 UNION ALL
	SELECT 11 UNION ALL
	SELECT 12 UNION ALL
	SELECT 13 UNION ALL
	SELECT 14 UNION ALL
	SELECT 15 UNION ALL
	SELECT 16 UNION ALL
	SELECT 17 UNION ALL
	SELECT 18 UNION ALL
	SELECT 19 UNION ALL
	SELECT 20 UNION ALL
	SELECT 21 UNION ALL
	SELECT 22 UNION ALL
	SELECT 23 UNION ALL
	SELECT 24 UNION ALL
	SELECT 25 UNION ALL
	SELECT 26 UNION ALL
	SELECT 27 UNION ALL
	SELECT 28 UNION ALL
	SELECT 29 UNION ALL
	SELECT 30 UNION ALL
	SELECT 31
	) x,(SELECT CURDATE() - INTERVAL DAY(CURDATE()) - 1 DAY AS first, DAY(CURDATE())-1 AS yestoday) y
WHERE x.d <= y.yestoday

SQL是把X作為一張臨時表(1-31號的窮舉),通過Y獲取年月日和昨日,關聯查詢出小於等於昨日的日期全部列舉