开发者

Converting integer to date and time format?

In sql server, how to convert an integer to date and tim开发者_JS百科e, for example :

declare @constant int =92011 or 102011

How to convert this into date format like 'September-2011' or 'October-2011'.


Try this :

declare @c int  
set @c = 92011  
SELECT DATENAME(MONTH,CAST(RIGHT(@c,4) + '-' + LEFT(@C, LEN(@C)-4) + '-01' AS DATE)) + '-' + RIGHT(@c,4)

or below case :

declare @c int  
set @c = 92011  
select CASE WHEN LEFT(@C, LEN(@C)-4) = 1 THEN 'January' 
      WHEN LEFT(@C, LEN(@C)-4) = 2 THEN 'February' 
      WHEN LEFT(@C, LEN(@C)-4) = 3 THEN 'March' 
      WHEN LEFT(@C, LEN(@C)-4) = 4 THEN 'April' 
      WHEN LEFT(@C, LEN(@C)-4) = 5 THEN 'May' 
      WHEN LEFT(@C, LEN(@C)-4) = 6 THEN 'June' 
      WHEN LEFT(@C, LEN(@C)-4) = 7 THEN 'July' 
      WHEN LEFT(@C, LEN(@C)-4) = 8 THEN 'August' 
      WHEN LEFT(@C, LEN(@C)-4) = 09 THEN 'September' 
      WHEN LEFT(@C, LEN(@C)-4) = 10 THEN 'October' 
      WHEN LEFT(@C, LEN(@C)-4) = 11 THEN 'November' 
      WHEN LEFT(@C, LEN(@C)-4) = 12 THEN 'December' 
      ELSE '' END + '-' + RIGHT(@c,4) 


declare @c int 
set @c = 102011 

;with M(Num, Name) as
(
  select 1,  'January' union all
  select 2,  'February' union all
  select 3,  'March' union all
  select 4,  'April' union all
  select 5,  'May' union all
  select 6,  'June' union all
  select 7,  'Juli' union all
  select 8,  'August' union all
  select 9,  'September' union all
  select 10, 'October' union all
  select 11, 'Novmber' union all
  select 12, 'December'
)
select M.Name+'-'+right(@c, 4)
from M
where M.Num = left(@c, len(@c)-4)

Inspired by the use of DATENAME in answer provided by Upendra Chaudhari.

select datename(month, dateadd(month, left(@c, len(@c)-4) - 1, 0))+'-'+right(@c, 4)
0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜