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)
精彩评论