我想在像2011年Q4的輸出(財務YR-QTR)抵達T-SQL - 財政季度
我可以做到這一點:
CASE -- Results: 2011-Q4 (Financial Yr-Qtr)
WHEN MONTH(MyDate) BETWEEN 1 AND 3 THEN concat((YEAR(MyDate) - 1), '-', 'Q4')
WHEN MONTH(MyDate) BETWEEN 4 AND 6 THEN concat((YEAR(MyDate) - 1), '-', 'Q1')
WHEN MONTH(MyDate) BETWEEN 7 AND 9 THEN concat((YEAR(MyDate) - 0), '-', 'Q2')
WHEN MONTH(MyDate) BETWEEN 10 AND 12 THEN concat((YEAR(MyDate) - 0), '-', 'Q3')
END AS FYrQtr
但可以在相同的輸出來實現沒有使用CONCAT? (我只有2008年在工作; CONCAT在2012年抵達)。
謝謝。
'CONCAT('X','Y')'='ISNULL('X','')+ ISNULL('Y',' 「)'。也許你可以試試看。另外,你應該養成在將數字連接到字符串之前明確地將數字轉換爲varchar的習慣 –
更長期的考慮使用日曆表來定義你的宿舍(這可能會也可能不適合你的要求) –
在'2012'中,你可以簡單地做:'SELECT CONCAT(YEAR(@Date),'-Q',DATEPART(QUARTER,@Date))' – gotqn