mysql 如何根据发帖的时间戳去统计当天的发帖量?

2016-04-15 03:30:24 +08:00
 lg2016

1 、在 publish 表有一个 pubtime 字段用来存储发帖的时候的时间戳( 10 位),现在我想写一句 sql 查询语句 求当天所有的帖子总量!

下面的查询语句是我想了一晚上的结果,不过没有什么卵用!

求高手指点下。

select count(*) from publish Where DATE_FORMAT(FROM_UNIXTIME(pubtime),'Y-m-d')) = DATE_FORMAT(NOW(),'Y-m-d');

2001 次点击
所在节点    问与答
14 条回复
lg2016
2016-04-15 08:46:56 +08:00
大家还没上班?
zouguolvyi
2016-04-15 09:41:18 +08:00
可以在程序中将当天的时间戳范围算出来,然后用 between and 来解决。
dangyuluo
2016-04-15 10:09:08 +08:00
建议你多睡点觉,调整一下作息
onion83
2016-04-15 10:25:32 +08:00
离真相近了,给个思路,用 group by
bianzhifu
2016-04-15 10:59:30 +08:00
SELECT
from_unixtime(pubtime, '%Y-%m-%d'),
COUNT(*)
FROM
publish
GROUP BY
from_unixtime(pubtime, '%Y-%m-%d');
lg2016
2016-04-15 11:02:47 +08:00
@bianzhifu 楼上真相,谢谢了!
lg2016
2016-04-15 11:06:06 +08:00
@dangyuluo 嗯,纠结了一晚,以后会注意的。
bianzhifu
2016-04-15 11:12:35 +08:00
SELECT
count(*)
FROM
publish
WHERE
pubtime >= floor(unix_timestamp(now()) / 86400) * 86400 - 28800
bianzhifu
2016-04-15 11:13:23 +08:00
@lg2016 这个是获取当天的 过来 24 点会变成 0
lg2016
2016-04-15 11:19:23 +08:00
@bianzhifu 嗯,已收到,下课了,我再研究!
bianzhifu
2016-04-15 11:20:09 +08:00
@lg2016 更新下 sql 上面的 sql 错误了 没有考虑到时间戳 从 8 点开始
SELECT
count(*)
FROM
publish
WHERE
pubtime >= floor(
(unix_timestamp(now()) + 28800) / 86400
) * 86400 - 28800
peter999
2016-04-15 11:24:31 +08:00
不如发帖的时候累加到记录表里,节省开销
lg2016
2016-04-15 12:53:47 +08:00
@zouguolvyi @onion83 根据你们的思路,写出下面这段查询语句

$today = date('Y-m-d');
$tomorrow = date('Y-m-d',strtotime('+1 day'));

$sql = "select DATE_FORMAT(FROM_UNIXTIME(pubtime),'%Y-%m-%d') as todayr_date,count(*) as today_sum from publish where DATE_FORMAT(FROM_UNIXTIME(pubtime),'%Y-%m-%d') between '{$today}' and '{$tomorrow}' group by todayr_date";
lg2016
2016-04-15 12:57:53 +08:00
@peter999 先阶段写着玩的,就 10 多条记录,暂时不用写到表里面,如果很多的话那一定要写到表里面。

另外再问大家一个问题, select 查询语句中是否不要大量的出现函数语句,听说会出现很多问题。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/271182

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX