使用Mysql查询当前月份中当前日期之前的星期日、星期一等的编号



我在表中有一个日期字段,我想使用mysql查找当前月份中当前日期之前的星期天的编号。

我怎样才能得到本月当前日期之前的星期日、星期一等的号码?

通过将SUM与表达式DAYNAME(created) ='sunday'一起使用,您可以获得当前月份的星期日数量,并且您的日期列小于当前日期,将sum与表达式一起使用将导致布尔值0或1,还请确保您已将标准日期对象存储在日期字段中。在我的情况下,我使用了创建时的名称,在where子句中,我将日期列与当月日期进行了比较

SELECT 
IFNULL(SUM(DAYNAME(created) ='Sunday'),0) `sundays`
FROM `table`
WHERE  created > LAST_DAY(NOW() - INTERVAL 1 MONTH) 
 AND   created < CURRENT_DATE()

编辑问题后您还可以按以下名称计算从月份开始到当前日期的天数

SELECT 
IFNULL(SUM(DAYNAME(created) ='Sunday'),0) `sundays`,
IFNULL(SUM(DAYNAME(created) ='Monday'),0) `mondays`,
IFNULL(SUM(DAYNAME(created) ='Tuesday'),0) `tuesdays`,
IFNULL(SUM(DAYNAME(created) ='Wednesday'),0) `wednesdays`,
IFNULL(SUM(DAYNAME(created) ='Thursday'),0) `thursdays`,
IFNULL(SUM(DAYNAME(created) ='Friday'),0) `fridays`,
IFNULL(SUM(DAYNAME(created) ='Saturday'),0) `saturdays`
FROM `table`
WHERE  created > LAST_DAY(NOW() - INTERVAL 1 MONTH) 
AND   created < CURRENT_DATE()

最新更新