我在其中一列中有一個整數123114,我需要將其轉換爲DATE格式(12/31/2014)。我該怎麼做?我什至嘗試將其轉換爲日期時間然後日期,但這也不起作用。我錯誤地用完了。任何人都可以幫助我。如何將int轉換爲MS Sql中的日期
感謝, 拉胡爾
我在其中一列中有一個整數123114,我需要將其轉換爲DATE格式(12/31/2014)。我該怎麼做?我什至嘗試將其轉換爲日期時間然後日期,但這也不起作用。我錯誤地用完了。任何人都可以幫助我。如何將int轉換爲MS Sql中的日期
感謝, 拉胡爾
declare @yourdate int
select @yourdate = 20141231
select CONVERT (date,convert(char(8),@yourdate))
試試這個..
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如前所述。
沒有看到查詢,很難給你一個明確的答案。假設你的整數總是在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條件不論,處理不好的數據,除非你的價值觀是相當嚴格的限制。
發佈您嘗試過的查詢,以便某些人可以知道該錯誤在哪裏@Aparanjit –
您的「日期」會查找01/01/2014? 112014?相同的01/11/2014和11/01/2014? –
一旦你弄明白了,你應該改變你的數據類型爲日期或日期時間。把它存儲爲int是很痛苦的。 –