2014-07-17 65 views
0

我在其中一列中有一個整數123114,我需要將其轉換爲DATE格式(12/31/2014)。我該怎麼做?我什至嘗試將其轉換爲日期時間然後日期,但這也不起作用。我錯誤地用完了。任何人都可以幫助我。如何將int轉換爲MS Sql中的日期

感謝, 拉胡爾

+0

發佈您嘗試過的查詢,以便某些人可以知道該錯誤在哪裏@Aparanjit –

+1

您的「日期」會查找01/01/2014? 112014?相同的01/11/2014和11/01/2014? –

+1

一旦你弄明白了,你應該改變你的數據類型爲日期或日期時間。把它存儲爲int是很痛苦的。 –

回答

0
declare @yourdate int 
select @yourdate = 20141231 
select CONVERT (date,convert(char(8),@yourdate)) 

試試這個..

0
declare 
    @testDate as int = '123114', 
    @StringDate as Char(6) 

set @StringDate = Cast(@testDate as Char(6)) 

select 
    ActualDate = (Substring(@StringDate,1,2) + '/' + Substring(@StringDate,3,2) + '/20' + Substring(@StringDate,5,2)) 

這將假設INT被格式化爲MMDDYY,需要以0開頭當m < 10如前所述。

0

沒有看到查詢,很難給你一個明確的答案。假設你的整數總是在MMDDYY格式,這應該工作:

declare @a int = 121314 
declare @b varchar(10) 
select @b = cast(@a as varchar(10)) 

if len(@b) = 6 --mmddyy 
begin 
select cast(substring(@b,1,2) + '-' + substring(@b,3,2) + '-' +substring(@b,5,2) as date) as castDate --depends on database collation 
select convert(date, substring(@b,1,2) + '/' + substring(@b,3,2) + '/' +substring(@b,5,2), 1) as convertedDate 
end 
else 
begin 
    print 'need something more complicated here' 
end 

你肯定會想某種else條件不論,處理不好的數據,除非你的價值觀是相當嚴格的限制。

相關問題