Concat部分日期+整数

时间:2015-11-18 22:17:01

标签: mysql concat

我正在尝试生成一个预订编号,其中包含2个日期部分和一个整数(年,月和派生的整数。)这是我正在尝试的但CONCAT()给出了错误。我也尝试了CONCAT_WS()CAST(),但都没有效果。 TXS。

SELECT date_format(CURRENT_DATE(), '%y%m') as my_date,
    a_res_number.res_number + 1 AS res,
    CONCAT(my_date, res) AS number
FROM a_res_number;

UPDATE a_res_number SET a_res_number.res_number = a_res_number.res_number + 1;

2 个答案:

答案 0 :(得分:3)

您无法在CONCAT()的调用中使用别名。

SELECT CONCAT(DATE_FORMAT(CURRENT_DATE(), '%y%m'), a_res_number.res_number + 1) AS number
FROM a_res_number;

或者,如果您需要这些值作为最终结果的一部分:

SELECT
    DATE_FORMAT(CURRENT_DATE(), '%y%m') AS my_date,
    a_res_number.res_number + 1 AS res,
    CONCAT(DATE_FORMAT(CURRENT_DATE(), '%y%m'), a_res_number.res_number + 1) AS number
FROM a_res_number;

答案 1 :(得分:2)

您也可以使用格式(无需重复函数调用):

SELECT my_date, res, CONCAT(my_date, res) AS number
FROM (
  SELECT
    DATE_FORMAT(CURRENT_DATE(), '%y%m') AS my_date,
    a_res_number.res_number + 1 AS res
  FROM a_res_number
) as q;