2012-11-29 48 views

回答

3

首先,你不能做到這一點,沒有拖尾日月零。所以,你輸入的數據必須是這樣的:

05122012 

其次,它是更好地使用的「原生」格式:

20121205 

什麼服務器反正

明白如果這是唯一的獲取數據的方式需要您測試並返回日期

基本功能將如下所示(SQL Server 2008示例):

此功能,如果輸入的數據是:05122012如果你需要不帶尾隨0您需要爲添加檢查功能

create function [dbo].[Str2Date] (@data as varchar(8)) 
returns datetime 
AS 
begin 
    declare @day char(2), @mon char(2), @year char(4) 
    set @day = substring(@data,1,2) 
    set @mon = substring(@data,3,2) 
    set @year = substring(@data,5,4) 
    set @data = @[email protected][email protected] 
    return convert (datetime,@data,112) 
end 

select dbo.Str2Date('05122012')