我尝试了大约10种不同的查询变体,类似于以下内容:
SELECT WEEKOFYEAR( dateline ) AS weekno, COUNT( 1 ) AS posts
FROM post
GROUP BY WEEKOFYEAR( dateline )
LIMIT 0 , 30
结果数据总是一些结果,大约600,000“NULL”,如下所示:
weekno posts
NULL 591843
1 57
2 42
3 25
4 44
5 9
6 38
7 15
8 41
9 10
10 130
11 77
12 69
13 36
14 25
15 25
16 24
17 44
18 42
19 14
20 49
21 70
22 41
23 40
24 57
25 40
26 31
以下是dateline
的表结构:
# Name Type Collation Attributes Null Default Extra
7 dateline int(10) UNSIGNED No 0
所有行在日期行中都有一个值。
我需要逐周工作,因为最终我想在有和没有指定论坛部分的情况下绘制帖子活动。我不知道为什么我得到了所有这些NULL
结果。
答案 0 :(得分:1)
我认为您的日期以unixtime
整数格式存储,假设它是unixtime
尝试FROM_UNIXTIME函数
SELECT WEEKOFYEAR(FROM_UNIXTIME(dateline)) AS weekno, COUNT( 1 ) AS posts
FROM post
GROUP BY WEEKOFYEAR(FROM_UNIXTIME(dateline))
LIMIT 0 , 30
要从不同年份返回周,请尝试此
SELECT
FROM_UNIXTIME(dateline, '%Y') Year,
WEEKOFYEAR(FROM_UNIXTIME(dateline)) AS weekno, COUNT( 1 ) AS posts
FROM post
GROUP BY FROM_UNIXTIME(dateline, '%Y'), WEEKOFYEAR(FROM_UNIXTIME(dateline))
LIMIT 0 , 30