MySQL列出當前月的每一天


因為工作的原因,要用MySQL列出當前月份每一天的日期,自己查了下網上資料都是列出最近一個月的日期的解決方案,自己根據查到的的方案,修改成了下面兩個方案,在此記錄下:

方案一:

    SELECT
		date_add(DATE_ADD(curdate(), INTERVAL - DAY(curdate()) + 2 DAY),
		INTERVAL (cast( help_topic_id AS signed INTEGER ) - 1 ) DAY 
		) DAY 
	FROM
		mysql.help_topic 
	WHERE
		help_topic_id < DAY ( last_day( curdate( ) ) ) 
	ORDER BY
		help_topic_id

方案二:

    SELECT
		date_add(
			CONCAT(YEAR(Date(curdate())),'-0',MONTH(Date(curdate())),'-','01'),
			INTERVAL ( cast( help_topic_id AS signed INTEGER ) ) DAY 
			) DAY 
	FROM
		mysql.help_topic 
	WHERE
		help_topic_id < DAY ( last_day( curdate( ) ) ) 
	ORDER BY
		help_topic_id

根據方案做的當月考勤統計,代碼如下:

SELECT
	a.day,
	aa.adt_statu
FROM
	(
SELECT
	date_add(
	CONCAT( YEAR ( Date( curdate( ) ) ), '-0', MONTH ( Date( curdate( ) ) ), '-', '01' ),
	INTERVAL ( cast( help_topic_id AS signed INTEGER ) ) DAY 
	) day
FROM
	mysql.help_topic 
WHERE
	help_topic_id < DAY ( last_day( curdate( ) ) ) 
ORDER BY
	help_topic_id 
	) a
	LEFT JOIN atte_attendance aa ON DATE_FORMAT(aa.adt_in_time ,'%Y-%m-%d') = DATE_FORMAT(a.day ,'%Y-%m-%d')
ORDER BY a.day;

個人建議使用方案二,因為方案一自己只在7月做過測試,其他月份沒有過測試,而且方案二確定性更強,不像方案一需要一些推算。由於自己手頭缺少MySQL的函數手冊,就不再進一步測試了。等到有時間再仔細看看


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM