连接日期的一部分 + 整数

Concat part of date + integer

我正在尝试生成一个预订号,它由 2 个日期部分和一个整数(年、月和派生整数)组成。这就是我正在尝试的,但是 CONCAT() 给出了错误。我也试过 CONCAT_WS()CAST() 但 none 有效。发送。

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;

您不能在对 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;

也可以使用format(不需要重复函数调用):

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;