我有信用卡ExpiryDate存儲爲tinyint。我希望將它們看作1月,2月等,而不是1,2,...以下作品,但是可以採用其他方式嗎?如何將tinyint值顯示爲月份名稱?
SELECT ExpMonth, CHOOSE(ExpMonth, 'Jan','Feb','Mar','Apr','May','Jun','Jul','Aug','Sep','Oct','Nov','Dec')
FROM Sales.CreditCard
我有信用卡ExpiryDate存儲爲tinyint。我希望將它們看作1月,2月等,而不是1,2,...以下作品,但是可以採用其他方式嗎?如何將tinyint值顯示爲月份名稱?
SELECT ExpMonth, CHOOSE(ExpMonth, 'Jan','Feb','Mar','Apr','May','Jun','Jul','Aug','Sep','Oct','Nov','Dec')
FROM Sales.CreditCard
如果你是2012或以上,...
SELECT FORMAT(DATEFROMPARTS(2000,ExpMonth,1),'MMM','en-US')
或者只是創建一個映射的查找表,並加入到這一點。
這會幫助你轉換:
WHILE (select <yourValue> from <yourtable>) < 13
BEGIN
declare @monthNum int;
set @monthNum = <yourValue>
select datename(month, dateadd(month, @monthNum - 1, 0)) as MonthName
END
格式()將是我的記錄數量有限的第一選擇。
只是更多的選擇。
例
Declare @YourTable table(ExpMonth int)
Insert Into @YourTable values
(1),(3),(12)
SELECT ExpMonth
, Option2 = left(datename(month,datefromparts(1900,ExpMonth,1)),3)
, Option3 = substring(' JanFebMarAprMayJunJulAugSepOctNovDec',ExpMonth*3,3)
FROM @YourTable
返回
ExpMonth Option2 Option3
1 Jan Jan
3 Mar Mar
12 Dec Dec
選項3非常有創意! – Eli
@Eli不得不深入我那箭頭的顫抖中,那個人一直回到我的dBase II時代。 (以防萬一... 80年代初) –
CASE語句也行。 – pmbAustin