在SQL Server 2005中将“2011-2012 Q1”格式化为“Q1 11-12”

时间:2011-07-28 12:48:17

标签: sql sql-server sql-server-2005 tsql

基本上我的表包含一个看起来像“2011-2012 Q1”的会计年度字段,我想尽可能使用SQL将其输出为“Q1 11-12”。如果有帮助,这适用于ASP.NET页面。

4 个答案:

答案 0 :(得分:2)

declare @s varchar(20)
set @s = '2011-2012 Q1'
select right(@s, 2) + ' ' + substring(@s, 3, 3) + substring(@s, 8, 2)

答案 1 :(得分:2)

怎么样;

;with test (fiscal) as (
    select  '2011-2012 Q1' union
    select  '1990-1991 Q2' union
    select  '2012-2013 Q4' union
    select  '1999-1999 Q3'  
)
select
    right(fiscal, 2) + ' '
    +
    substring(fiscal, 3, 2) + '-'
    +
    substring(fiscal, 8, 2)
from test


>>Q2 90-91
>>Q3 99-99
>>Q1 11-12
>>Q4 12-13

答案 2 :(得分:1)

必须有更好的方法,但可以使用此

PRINT RIGHT('2011-2012 Q1', 2) + ' ' + RIGHT(LEFT('2011-2012 Q1', 4), 2) + '-' + RIGHT(LEFT('2011-2012 Q1', 9), 2)

返回

Q1 11-12

请注意,SQL Server并非真正用于字符串操作,我建议您将显示逻辑放在它真正属于的位置 - 在您的UI中

答案 3 :(得分:1)

SELECT RIGHT(col, 2) +' '+ SUBSTRING(STUFF(col, 6,2,''), 3,5)
FROM (SELECT '2011-2012 Q1' col) t