конвертирование нескольких форматов даты на сервер sql

У меня есть требование конвертировать несколько типов типов ввода, введенных пользователями, в стандартный формат даты, т.е.

Формат входных данных из старой таблицы относится к типу данных Varchar и может быть форматом DD / MM / YYYY или DDMMYYYY или DDMMYY (вручную вводимым пользователями)

Пример: 08/10/2013 или 08102013 или 081013

И мое требование – преобразовать это в стандартный формат даты, как я могу это достичь?

Любая помощь будет оценена

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 

Результаты :

 | COLUMN_0 | |------------| | 2013-10-08 | | 2013-10-08 | | 2013-10-08 | 
  • Ошибка преобразования при преобразовании varchar в smallint
  • SQL: Максимальный (n) размер varchar может быть сохранен в sql_variant
  • Могу ли я установить 2 МБ для максимального размера varbinary?
  • Столбец, параметр или переменная # 10: не удается найти тип данных
  • SQL Server - тип данных BIT
  • Вставьте персидские символы в базу данных SQL
  • Геометрия и география данных на сервере SQL
  • SQL Server: типы данных таблиц до наименьшего возможного пространства для преодоления предела максимально допустимого размера строки таблицы размером 8060 байт?
  • Проблема с типом данных nchar в базе данных SQL Server
  • Дата и дата данных даты несовместимы в операторе добавления
  • Строки SQL Server, заполненные пробелом при вставке - почему?
  • Давайте будем гением компьютера.