在sql server中将多个日期格式转换为日期

时间:2013-10-08 07:01:42

标签: sql-server date date-format sqldatatypes

我要求将用户输入的多个日期类型输入转换为标准日期格式,即

旧表中的输入日期格式为Varchar数据类型,可以是DD / MM / YYYY或DDMMYYYY或DDMMYY格式(由用户手动输入)

示例:08/10/2013或08102013或081013

我的要求是将其转换为标准日期格式,我该如何实现?

任何帮助将不胜感激

1 个答案:

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