2010-09-07 49 views
0

我有一个Web任务来计算数据库中的一些数据。我必须每天,每周和每月统计这些数据。mysql:哪个更好使用DAY()或WEEK()?

对于每周,我仍然困惑着决定我应该使用哪种MySQL语法来处理这种情况。 有两种解决此问题的建议:使用DAY()WEEK()

我希望这种语法不受混乱的东西的限制。应该宣布月份和月末的第一天,或者在周日或周一开始等,我希望每次都可以使用罐(但是每周都会关注)。

我可以使用哪一个? DAY()或WEEK()?

回答

0

每周一期的统计数据,你需要决定是否要你每周的统计数据,从周一运行至周日,或从周日到周六。要么可以支持。

最终,您可能会将YEAR(datefield)WEEK(datefield, 1)分组。当涉及每月排序时,您将按YEAR(datefield)MONTH(datefield)进行分组。对于日常统计,如果datefield存储在DATE类型中,那么您可以简单地按该组进行分组;如果您也有时间,则将按YEAR(datefield)DAYOFYEAR(datefield)将值分组。

+0

怎么样在这个http://stackoverflow.com/questions/3640729/counting-data-and-grouping-by-week-in-mysql。它每周使用DAY()计数。有什么不同? – klox 2010-09-07 07:17:25

+0

@ klox:我应该去倒下这个答案。 DAY()函数是DAYOFMONTH的同义词。这意味着所显示的查询会将1月1日至7日的数据与2月的第1-7天,以及数据所在的每年的3月和4月......数据进行分组。显然,它回答了OP的问题,但我有些怀疑当他们的数据延续了几年时他们会很高兴。有多种方法来回答任何特定的查询 - 这个问题和这个问题有一些区别。 – 2010-09-07 07:34:11

+0

@ klox:哦,我知道你是另一个Q的海报......我建议重新考虑你接受这个答案。 – 2010-09-07 07:35:35

0

本周应该在周日/周一开始,而不是在本月的第一天。所以,你应该较周一最好使用WEEK()为一周的第一天:

WEEK(date, 1) 
+0

我想我只是在周关注。每7天计数一次。“1周和7天之间”不同的“周()”和“日()”有什么不同? – klox 2010-09-07 07:08:16