将MySQL列别名设置为计算日期

时间:2013-04-26 18:40:08

标签: mysql

我希望做这样的事情:

select data AS curdate() from table;

所以结果表看起来像:

2013-04-26
  data 1
  data 2
  data 3

我无法弄清楚语法,但一定有可能吗?

我尝试过没有任何类型的引号,这会返回错误。单引号和反向标记都将SQL本身作为列标题返回。

2 个答案:

答案 0 :(得分:3)

这是一个不寻常的要求,但如果你坚持,你必须使用动态的SQL。

SET @curdate = CURDATE();
SET @sql = CONCAT('SELECT whatever AS "', @curdate, '" FROM whatever');

PREPARE stmt FROM @sql;
EXECUTE stmt;
DEALLOCATE PREPARE stmt;

答案 1 :(得分:0)

别名被视为标识符,如果不使用动态SQL,则无法将其分配给函数。它会破坏引用,例如:

SELECT *
FROM (SELECT 1 AS curdate()) a