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_statuFROM (
SELECT date_add(
CONCAT( YEAR ( Date( curdate( ) ) ), '-0', MONTH ( Date( curdate( ) ) ), '-', '01' ), INTERVAL ( cast( help_topic_id AS signed INTEGER ) ) DAY ) dayFROM
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的函数⼿册,就不再进⼀步测试了。等到有时间再仔细看看