1
1
在MySQL中没有直接的方法可以做到这一点。您最好的选择是用您选择的服务器端语言生成一个日期范围数组,然后从数据库中提取数据,并将结果数组与使用日期作为键的日期范围数组合并。 您使用的是哪种服务器端语言? 编辑: 基本上你要做的是(伪代码):
最后,您会得到一个可以循环使用的日期数组,其中包含或不包含与之关联的活动数据的日期。 可以方便地修改以按小时分组/筛选数据。 |
2
9
我的建议是:不要让你的生活更艰难,让它更容易。只需为每个日历日创建一个包含一行的表,其中包含您认为合理需要持续的行数。在数据仓库中,这是一个常见的解决方案,它被如此广泛地实现,以至于没有它的DWH具有代码味道。 许多习惯于处理更传统的OLTP/数据输入应用程序的人对这个想法感到自然的反感,因为这种感觉无论如何都可以生成数据,因此不应该存储它。但是,如果您确实创建了这样的表,那么您可以用许多有用的属性来修饰它,例如它是holdiday还是weekend,并且您可以在其中存储许多常见的日期表示(iso、european、us格式等),这可以在创建报表时节省大量时间(因为您不必费心弄清楚日期格式如何设置)在您所使用的每个报告工具中工作。或者,您可以更进一步,每天更新日期表,以标记当前日期、当前周、当前月、当前年等的标志-各种有用的工具,使构建需要针对某个日期范围工作的报告变得更容易、更容易。 注释中请求的mysql示例代码:
使用
对于处理假日的更复杂的日期维度,以及月份和日期的本地化名称,您可以查看: http://rpbouman.blogspot.com/2007/04/kettle-tip-using-java-locales-for-date.html 和 http://rpbouman.blogspot.com/2010/01/easter-eggs-for-mysql-and-kettle.html |
3
2
我最近做了一些研究来寻找和评估可能的选择。 http://www.freeportmetrics.com/devblog/2012/11/02/how-to-quickly-add-date-dimension-to-pentaho-mondrian-olap-cube/ . 你可以使用:
有关详细信息,请查看日志。它还包含Roland的SQL脚本的改进版本,该脚本将自动计算给定列的日期范围,并将其与日期维度联接。 |
4
0
尝试在MySQL存储的例程中使用循环来创建日期范围:
|
hello_programmers · Mysql从其他表输出一列 1 年前 |
Community wiki · 这个MySQL语句出了什么问题? 1 年前 |
Community wiki · 优化从同一表中提取的多列的查询 1 年前 |
Popo · Sql查询:返回数据库中不可用的where条件 1 年前 |
Hamdan Nuramdani · 对账单中一周内不同表中的数据求和 1 年前 |
Kugelfisch · 用php为数据库加密数据 1 年前 |