在MySQL中,是否可以将日期设置为列名

时间:2013-09-25 10:27:26

标签: mysql date

在MySQL中,是否可以将日期设置为列名 我正在考虑创建一个包含最近3周数据的表格,其中所有三周的列名称将是该周的第一个日期。
因此,如果currante日期是25-09-2013,那么我的表应该有3列,列名为:
11-09-2013,28-09-2013和25-09-2013。

4 个答案:

答案 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,

之后显示时,重命名它们。之前我做了类似的事情来比较广告系列的效果,但是在创建数据表时已将列命名作为日期。