0

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

4

4 回答 4

3

当然,为什么不:

mysql> 选择 'foo' 作为 `2013-09-25`;
+------------+
| 2013-09-25 |
+------------+
| 富 |
+------------+
一组中的 1 行(0.00 秒)

- 只记得反引号。

但是,实际上,如果您想生成一些不是一个好主意的动态列 - 您最好使用应用程序。

于 2013-09-25T10:28:49.683 回答
1

这可能是可能的,但我会说这是一个可怕的、非规范化的、不可持续的、脑死亡的设计。我建议重新考虑它,对您的要求一无所知。

于 2013-09-25T10:30:47.867 回答
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,

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

于 2013-09-25T10:50:19.650 回答
0

你这样做的理由是什么?

如果只是为了使数据看起来更具可读性,那么可以通过运行将数据格式化为您需要的布局的报告来实现。

只需在每个条目上存储带有日期标签的数据,然后在报告中的 3 周内检索它。

动态创建表会给您的处理增加不必要的开销,并使其他进程的备份、复制和检索变得复杂。

于 2013-09-25T10:39:25.337 回答