我的列中有一个整数为123114,我需要转换为DATE格式(12/31/2014)。我该怎么做?我甚至试图将它转换为日期时间,然后是日期,但这也无效。我的错误已经不多了。任何人都可以帮助我。
谢谢, 拉胡
答案 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
除非你的价值受到严格限制,否则你无论如何都要想要处理不良数据。