php - 如何编写一个 SQL 查询来计算每月和每年的行数?

标签 php mysql vbulletin unix-timestamp

有没有人知道如何查询 vbulletin 数据库以生成有关每月/每年的注册数量的报告,以获得类似这样的结果。

MM/YYYY      Count
01/2001  :   10
02/2001  :   12
...
...

感谢下面的回答。我的最终版本如下:

SELECT 
  COUNT(*) as 'Registrations', 
  YEAR(FROM_UNIXTIME(joindate)) as 'Year',
  MONTH(FROM_UNIXTIME(joindate)) as 'Month'
FROM vbfuser
GROUP BY Year,Month

最佳答案

我不熟悉 vBulletin 的数据库结构,但你应该做类似这样的事情,假设你的用户表有一个日期/日期时间/时间戳 created_date reg_timestamp 列或类似的东西,使用 MySQL 的 YEAR()MONTH()功能

select 
    count(*) as count, 
    year(reg_timestamp) as year 
    month(reg_timestamp) as month
from users 
group by year, month;

这将导致类似于此的结果:

+-------+-------+------+
| count | month | year |
+-------+-------+------+
|     4 |    11 | 2008 | 
|     1 |    12 | 2008 | 
|   196 |    12 | 2009 | 
|   651 |     1 | 2010 | 
+-------+-------+------+

编辑:关于 D​​ave 的评论: vBulletin 的日期似乎以 Unixtime 格式存储。在这种情况下,只需用 FROM_UNIXTIME 包裹该列即可将其转换为可读的 MySQL 日期:

select 
    count(*) as count, 
    year(from_unixtime(reg_timestamp)) as year 
    month(from_unixtime(reg_timestamp)) as month
from users 
group by year, month;

关于php - 如何编写一个 SQL 查询来计算每月和每年的行数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5040141/

相关文章:

php - 避免 yii2 中的 sql 注入(inject)

javascript - jQuery 验证插件多个远程问题。是我还是bug?

php - 循环遍历表列

javascript - 从网站中删除恶意软件

php - 无法使用php和ajax从数据库中获取数据

php - 如何在数据库中添加复选框值?

mysql - 优化django查询拉取外键和django-taggit关系

c# - 跟踪更改并从 Mysql -> MSSQL 进行更改的最佳方法

php - 为未注册用户下载 vbulletin 中的附件文件

Php 插入/更新多行,使用数组而不是 foreach