【问题标题】:MYSQL Date as column headers?MYSQL 日期作为列标题?
【发布时间】:2016-03-30 03:04:52
【问题描述】:

我很确定这真的很容易而且我很笨,提前抱歉!

我只想要带有日期的列作为标题。

EG:

SELECT X, Y, Z, 
SUM(IF(date = curdate() - interval 31 DAY, COUNT(VOLUME), "")) as CURDATE() - interval 31 DAY

差不多了,将一天的交易量相加,并将列标记为计算的日期。

我是否严重偏离目标?

搜索导致尝试:

SET $31 = CURDATE() - interval 31 day;
SELECT data as $31

这只会产生 $31 作为标签,而不是它应该提取的值。

我已经输入了大约 30 个堆栈溢出问题,但通常会在输入时修复它们。然而,这没有喜悦。任何帮助表示赞赏。圣诞快乐。

期望: Col1、Col2、Col3、23-11-2015、24-11-2015、25-11-2015 等

【问题讨论】:

  • 选择数据为 `23-11-2015`
  • @EdGibbs 报告明天将无效。它需要是定期的每日报告
  • 没有硬编码或使用动态 SQL 我不认为你可以stackoverflow.com/questions/6691865/… 大多数地方建议将列命名为其他名称并在应用程序中转换列名。或者也许...dba.stackexchange.com/questions/31115/…
  • 啊,当然 - 抱歉。仔细阅读(正如我一开始就应该做的那样),我不确定你如何在 MySQL 中做到这一点。
  • @xQbert 遗憾的是,Microsoft SQL 解决方案在 mysql 工作台中不适合我。那就是我最终得到“SET”行的地方,但是是的,也许它是一个无法解决的问题的重复。

标签: mysql date header calculated-columns


【解决方案1】:

您可以使用存储过程相对简单地实现这种类型的结果。

DELIMITER //
 CREATE PROCEDURE test_col_name ()
 BEGIN
   SET @stmt := CONCAT("SELECT 1 AS '", CURDATE(), "'");

  PREPARE p_stmt FROM @stmt;
  EXECUTE p_stmt;
  DEALLOCATE PREPARE p_stmt;
 END//

mysql> call test_col_name();
+------------+
| 2015-12-23 |
+------------+
|          1 |
+------------+
1 row in set (0.09 sec)

【讨论】:

  • 谢谢 - 我回来工作后会试一试。
  • 好的,将其标记为解决方案,但是我似乎没有权限在我的工作服务器上创建过程。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2018-03-07
  • 2022-11-16
  • 2015-09-17
  • 2012-11-23
  • 1970-01-01
  • 2018-02-20
  • 1970-01-01
相关资源
最近更新 更多