我正在尝试生成一个预订编号,其中包含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;
答案 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;