制作一个简单的格式(MySQL)

时间:2013-07-22 15:18:56

标签: mysql sql

目标

99999999转换为99999-999

问题

我不知道语法。

我已经考虑过的事情

我正在考虑使用FORMAT()函数 - 但我正在使用 INT 而不是 DECIMAL

我的查询

Select city.ZipCode As zipCode
From app_cities As city
Where city.Id = 1

所以,就是这样。有人对我有任何想法吗?

3 个答案:

答案 0 :(得分:4)

使用INSERT()

select insert(ZipCode , 6, 0, '-') As zipCode
from app_cities As city
where Id = 1

SQLFiddle demo

答案 1 :(得分:2)

邮政编码的问题在于可能有前导0.因此邮政编码的长度可以是7位或8位。

因此,邮政编码可能是02323-213或12133-333。作为一个int,你将丢失第一个数字。

采取Jurgen D已发布并修改它的内容。

SELECT insert(LPAD(zipcode, 8, '0'), 6, 0, '-') from zipcodes;

SQL Fiddle

答案 2 :(得分:0)

select concat(substring(cast(999999999 as char),5),'-',
              (substring(cast(999999999 as char),6,4)));

fiddle

来自表格:

select concat(substring(cast(ZipCode as char),5),'-',
              (substring(cast(ZipCode as char),6,4)));