出现这个错误提示不知道这个语句如何写,想自动实现编号

出现这个错误提示 不知道这个语句如何写,mysql想自动实现编号

SELECT CONCAT('PO',CONVERT(CHAR(6),GETDATE(),12) + RIGHT('0000'+CAST(COUNT(*)+1 AS VARCHAR(5)),5)) AS PSID FROM TB_MFPOS WHERE OS_ID='PO'   以上在sql2008运行又可以

222.png

金色年华 发布于 2022-4-10 07:02
1min目标场景问卷 立即参与
回答问题
悬赏:3 F币 + 添加悬赏
提示:增加悬赏、完善问题、追问等操作,可使您的问题被置顶,并向所有关注者发送通知
共2回答
最佳回答
0
数码天空Lv4初级互助
发布于2022-4-10 14:27

 正确的MySQL语句如下:

SELECT

CONCAT('PO', date_format(now(), '%y%m%d'), RIGHT('0000' + CAST(COUNT(*) + 1 AS VARCHAR(5)),5)) AS PSID

FROM

TB_MFPOS

WHERE

OS_ID = 'PO'

QQ图片20220329111739.png

最佳回答
0
全栈数据Lv6初级互助
发布于2022-4-10 09:10

你这是SQLServer的语法,在MySql中是不支持GetDate函数的,同时,mysql的convert函数只有两个参数,参数和sqlserver不一样,能力也比SQLserver弱。

你的需求在mysql里应该改成这样:

SELECT CONCAT('PO',date_format(CURRENT_DATE(),'%y%m%d'))

完整语句:

SELECT CONCAT('PO',date_format(CURRENT_DATE(),'%y%m%d')) + RIGHT('0000'+CAST(COUNT(*)+1 AS VARCHAR(5)),5)) AS PSID FROM TB_MFPOS WHERE OS_ID='PO'

  • 金色年华 金色年华(提问者) 运行的时候出现了这个错误:[SQL]SELECT CONCAT(\'PO\',date_format(CURRENT_DATE(),\'%y%m%d\')) + RIGHT(\'0000\'+CAST(COUNT(*)+1 AS VARCHAR(5)),5)) AS PSID FROM TB_MFPOS WHERE OS_ID=\'PO\' [Err] 1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near \'VARCHAR(5)),5)) AS PSID FROM TB_MFPOS WHERE OS_ID=\'PO\'\' at line 1
    2022-04-10 12:48 
  • 全栈数据 全栈数据 回复 金色年华(提问者) 你按照Mysql的语法修改就行,mysql有mysql的函数
    2022-04-10 18:28 
  • 3关注人数
  • 319浏览人数
  • 最后回答于:2022-4-10 14:27
    请选择关闭问题的原因
    确定 取消
    返回顶部