日期:2014-05-16  浏览次数:20601 次

sql 如何格式化输出这个数字?
字段类型float 
比如里面一个数字为 320 
需要格式化为 3'20" 这样的字符串输出

请教在sql中该如何做?
------解决方案--------------------
SELECT     SUBSTRING(CONVERT(char, 320), 1, 1) + '"' + SUBSTRING(CONVERT(char, 320), 2, 2) + '"' 
------解决方案--------------------
试试这个,注意在字符串的单引号,必须要写两次,起到转义的作用
SELECT  SUBSTRING(CONVERT(char, 320), 1, 1) + '''' + SUBSTRING(CONVERT(char, 320), 2, 2) + '"'  
/*
3'20"
*/

------解决方案--------------------
有没有规则?是在什么地方进行拆分?什么地方代表分?什么地方开始代表秒?
------解决方案--------------------
引用:
试试这个,注意在字符串的单引号,必须要写两次,起到转义的作用
SELECT  SUBSTRING(CONVERT(char, 320), 1, 1) + '''' + SUBSTRING(CONVERT(char, 320), 2, 2) + '"'  
/*
3'20"
*/


------解决方案--------------------
时分秒......
------解决方案--------------------
我觉得这样比较严谨
DECLARE @a FLOAT
SET @a=320
SELECT LEFT('0'+CAST(@a AS VARCHAR),2)+''''+RIGHT(CAST(@a AS VARCHAR),2)+''''''

/*

-------
03'20''
*/

------解决方案--------------------
本帖最后由 DBA_Huangzj 于 2014-03-17 13:01:21 编辑
DECLARE @a FLOAT
SET @a=320
SELECT CASE WHEN LEN(@a)%2<>0 then LEFT('0'+CAST(@a AS VARCHAR),2) ELSE LEFT(CAST(@a AS VARCHAR),2) END +''''+RIGHT(CAST(@a AS VARCHAR),2)+'"'

/*

------
03'20"
*/
------解决方案--------------------
case when then