php - 在 SELECT 中格式化 curdate()

标签 php mysql

我使用以下方法计算过去 10 天的新用户数:

SELECT days.day, count(u.user_id)
FROM
(select curdate() as day
union select curdate() - interval 1 day
union select curdate() - interval 2 day
union select curdate() - interval 3 day
union select curdate() - interval 4 day
union select curdate() - interval 5 day
union select curdate() - interval 6 day
union select curdate() - interval 7 day
union select curdate() - interval 8 day
union select curdate() - interval 9 day) days
left join users u
on days.day = DATE(u.dateadded)
group by
days.day

它完美地工作但给出了 date_format,因为它应该是 2014-03-18 - 理想情况下,我希望日期格式是例如“3 月 18 日星期二”

这就是我正在尝试的,但只返回 2 行,它们在天数列下显示 nullBLOB

SELECT days.day, count(u.user_id)
FROM
(select DATE_FORMAT(curdate(), '%a %D %b') as day
union select DATE_FORMAT(curdate(), '%a %D %b') - interval 1 day
union select DATE_FORMAT(curdate(), '%a %D %b') - interval 2 day
union select DATE_FORMAT(curdate(), '%a %D %b') - interval 3 day
union select DATE_FORMAT(curdate(), '%a %D %b') - interval 4 day
union select DATE_FORMAT(curdate(), '%a %D %b') - interval 5 day
union select DATE_FORMAT(curdate(), '%a %D %b') - interval 6 day
union select DATE_FORMAT(curdate(), '%a %D %b') - interval 7 day
union select DATE_FORMAT(curdate(), '%a %D %b') - interval 8 day
union select DATE_FORMAT(curdate(), '%a %D %b') - interval 9 day) days
left join users u
on days.day = DATE_FORMAT(u.dateadded, '%a %D %b')
group by
days.day

有更好的方法吗?

我正在使用 MySQL 和 PHP

最佳答案

当然,JOIN 必须保持不变。无需在那里使用 DATE_FORMAT()

SELECT DATE_FORMAT(days.day, '%a %D %b') AS "day", count(u.user_id)
FROM
(select curdate() as day
union select curdate() - interval 1 day
union select curdate() - interval 2 day
union select curdate() - interval 3 day
union select curdate() - interval 4 day
union select curdate() - interval 5 day
union select curdate() - interval 6 day
union select curdate() - interval 7 day
union select curdate() - interval 8 day
union select curdate() - interval 9 day) days
left join users u
on days.day = DATE(u.dateadded)
group by
days.day

关于php - 在 SELECT 中格式化 curdate(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22473540/

相关文章:

javascript - PHP:两个 <select>,第一个已准备好填充,第二个我想填充值

php - PHP中不区分大小写的字符串比较

php - 每月佣金计算 PHP

mysql - SQL查询以查找在连接表中没有特定组ID的用户

php - Laravel 数据库限制

php - $wpdb->insert 没有重新分配唯一字段

跨越多行的结果的 mysql 逻辑

php - 正则表达式第n次匹配

php - 高优先级齿轮工作业未被视为高优先级

mysql - 不选择任何表列的查询 - 我是否理解正确?