2013-10-22 88 views
0

我使用YYYYMM獲得int值。我想: 1.轉換成日期時間 2.添加1天DATEADD(日+1,@date) 3.將其轉換回轉換成int將int轉換爲日期以添加dayn並將其轉換爲int

什麼是最簡單的方法是什麼?

+0

可能重複:HTTP://計算器.com/questions/3855867/convert-int-to-datetime-sql – valverij

+1

有什麼需要使用'DATEADD'?如果你有'YYYYMM'作爲輸入,你總是有2個「輸出日」! –

+0

順便說一下,你想要什麼樣的「int」作爲輸出?你能用真實的輸入和輸出來展示一個例子嗎? –

回答

0

這裏是一個很好的鍛鍊,我希望它能爲你...

declare @date date 

declare @newDate date 

set @date = convert(date, '20100101') 

set @newdate = DateAdd(dd, 1, @Date) 

select @date 

select @newdate 

select convert(int, convert(varchar, @newdate, 112)) -- this is your final conversion back to int 
+0

請注意,這裏缺少來自'int'的初始轉換。不過你可以直接轉換成'varchar':'set @date = convert(date,convert(varchar,20100101))' – valverij

0

如果您最初的int是,比如說,201310(2013年10月),那麼我想你想的這個:

select convert(datetime, rtrim(201310 * 100 + 1)) 

功能RTRIM是一種把int轉換爲字符串類型的技巧。

結果是這樣的:

2013-10-01 00:00:00.000 

如果你不想使用RTRIM,下面的命令,會得到相同的結果:

select convert(datetime, convert(char, 201310 * 100 + 1))