如何在MS Sql中将int转换为日期

时间:2014-07-17 14:44:00

标签: sql-server-2008

我的列中有一个整数为123114,我需要转换为DATE格式(12/31/2014)。我该怎么做?我甚至试图将它转换为日期时间,然后是日期,但这也无效。我的错误已经不多了。任何人都可以帮助我。

谢谢, 拉胡

3 个答案:

答案 0 :(得分:0)

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

试试这个..

答案 1 :(得分: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,当m <0时需要前导0。 10如前所述。

答案 2 :(得分: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

除非你的价值受到严格限制,否则你无论如何都要想要处理不良数据。