2013-10-08 4 views
1

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

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

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

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

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

ответ

3

SQL Fiddle

сервера Настройка MS SQL 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

Смежные вопросы