2013-10-08 82 views
1

我要求多個日期類型的輸入通過用戶標準日期格式輸入的轉換即從舊錶轉換多個日期格式迄今在SQL服務器

輸入日期格式是VARCHAR數據類型的,並且可以是DD的/ MM/YYYY或DDMMYYYY或DDMMYY格式(由用戶手動輸入)

例子:2013年8月10日或08102013或081013

而我的要求是將其轉換爲標準的日期格式,我怎麼能實現這個 ?

任何幫助,將不勝感激

回答

3

SQL Fiddle

MS SQL Server 2008的架構設置

create table YourTable(DateCol varchar(20)) 

insert into YourTable values ('08/10/2013'), ('08102013'), ('081013') 

查詢1

select 
    case len(DateCol) 
    when 10 then convert(date, DateCol, 103) 
    when 8 then convert(date, stuff(stuff(DateCol, 5, 0, '/'), 3, 0, '/'), 103) 
    when 6 then convert(date, stuff(stuff(DateCol, 5, 0, '/'), 3, 0, '/'), 3) 
    end 
from YourTable 

Results

| COLUMN_0 | 
|------------| 
| 2013-10-08 | 
| 2013-10-08 | 
| 2013-10-08 | 
+0

非常感謝:) – user2827587