0
在SQL Server中,如何將一個整數轉換的日期和時間,例如:將整數轉換爲日期和時間格式?
declare @constant int =92011 or 102011
如何將其轉換成類似「九月-2011」或「10 - 2011」日期格式。
在SQL Server中,如何將一個整數轉換的日期和時間,例如:將整數轉換爲日期和時間格式?
declare @constant int =92011 or 102011
如何將其轉換成類似「九月-2011」或「10 - 2011」日期格式。
試試這個:
declare @c int
set @c = 92011
SELECT DATENAME(MONTH,CAST(RIGHT(@c,4) + '-' + LEFT(@C, LEN(@C)-4) + '-01' AS DATE)) + '-' + RIGHT(@c,4)
或 以下情況:
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)
在回答使用DATENAME由Upendra Chaudhari提供啓發。
select datename(month, dateadd(month, left(@c, len(@c)-4) - 1, 0))+'-'+right(@c, 4)
在第一個代碼,如果你會使用數字,如92011.叟,你應該使用這樣的代碼,你會得到錯誤: 'SELECT DATENAME(MONTH,CAST(RIGHT(@ c,4)+' - '+ LEFT(@ c,LEN(@c)-4)+'-01'AS DATE))+' - '+ RIGHT(@ c,4)' – Dalex
@Dalex:是的,檢查我的更新答案。 –