2011-06-16 59 views
0

如果我在CMMDDYY的转换CMMDDYY成日期在SQL Server

C = 0,1或2,其中0表示19中,1代表20和2代表21

实施例的格式的日期字符串:

1022511将在02/25/2011以mm/dd/yyyy格式显示。

有没有办法在sql server中将其转换为mm/dd/yyyy格式?

CMMDDYY甚至是有效的日期格式吗?我没有找到关于它的很多信息。

+0

这听起来像一个时髦的Y2K修复,他们不愿意真正修复数据,但不想要的东西会br在40年后再次咀嚼。 ('如果年份> 60那么世纪是19,否则世纪是20'的修正。) – thursdaysgeek 2011-06-16 00:11:38

回答

1

年度算法很简单:(19 + int(C))*100 + int(yy)

试试这个:

declare @st nvarchar(7) 
set @st = '1030609' 

select 
    cast(
     substring(@st,2,2) + '/' 
     + substring(@st,4,2) + '/' 
     + cast((19 + cast(substring(@st,1,1) as int))* 100 
         + cast(substring(@st,6,2) as int) as nvarchar) 
    as datetime) 

此输出:

enter image description here

1

它听起来不像内置的日期格式,但你应该能够在msdn上找到它,如果是。如果没有,你可以写在SQL Server中的函数解析该格式的字符串DateTime对象