在MySQL中,是否可以将日期设置为列名
我正在考虑创建一个包含最近3周数据的表格,其中所有三周的列名称将是该周的第一个日期。
因此,如果currante日期是25-09-2013,那么我的表应该有3列,列名为:
11-09-2013,28-09-2013和25-09-2013。
答案 0 :(得分:2)
当然,为什么不:
mysql> select 'foo' as `2013-09-25`; +------------+ | 2013-09-25 | +------------+ | foo | +------------+ 1 row in set (0.00 sec)
- 请记住反叛。
但是,实际上,如果你想制作一些不是一个好主意的动态列,你最好使用应用程序。
答案 1 :(得分:1)
它可能可能,但我会说它是一种可怕的,非规范化的,不可持续的,脑死亡的设计。我建议重新考虑它,对你的要求一无所知。
答案 2 :(得分:0)
你这样做的理由是什么?
如果数据看起来更具可读性,那么可以通过运行将数据格式化为您需要的布局的报告来实现。
只需在每个条目上存储带有日期标记的数据,然后在报告中的3周内检索它。
动态创建表将为您的处理增加不必要的开销,并使其他进程的备份,复制和检索变得复杂。
答案 3 :(得分:0)
您希望在显示层中执行此操作。
选择列
if(date=curdate() - interval 1 day, result, null) as today_minus_1,
if(date=curdate() - interval 2 day, result, null) as today_minus_2,
if(date=curdate() - interval 2 day, result, null) as today_minus_3,
之后显示时,重命名它们。之前我做了类似的事情来比较广告系列的效果,但是在创建数据表时已将列命名作为日期。