2015-11-18 42 views
0

我想要生成一個由2個日期部分和一個整數(年份,月份和導出的整數)組成的保留號。這裏是我正在嘗試的,但是CONCAT()給出錯誤。我也試過CONCAT_WS()CAST(),但都沒有工作。 TXS。Concat部分日期+整數

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; 
+1

最有可能你必須將'date_format''CAST'改爲字符串。 – SabDeM

+0

對於未來,說「concat()給出錯誤」沒有幫助。如果您遇到錯誤並且需要幫助,則必須告訴我們錯誤! – miken32

+1

好的txs爲您的建議我會 – papacico

回答

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; 
+0

thx很多miken32雙方都工作得很好 – papacico

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; 
+0

txs這也是一個很好的方法 – papacico