Попытка конвертировать дату столбца в mmddyyyy, когда она yyyymmdd, а в таблице с другими столбцами

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

Например, у меня есть таблица с данными следующим образом:

ID   |   Date   |   Type   |
----------------------------
1    | 20140308 | License  |
2    | 20140308 | License  |
3    | 48       | License  |

Я хочу получить результат:

ID   |   Date      |   Type   |
-------------------------------
1    | 3-8-2014    | License  |
2    | 3-8-2014    | License  |
3    | 48(not sure)| License  |

Это возможно, когда у меня есть данные о мусоре, поступающие в систему? Я продолжаю получать такую ​​ошибку, когда пытаюсь преобразовать даты в MMDDYYYY.

Msg 241, уровень 16, состояние 1, строка 1 Ошибка конверсии при конвертации дату и/или время от символьной строки. Внимание: значение NULL устраняются агрегатной или другой операцией SET.

Ответ 1

Как насчет этого....

Данные тестирования

DECLARE @Table TABLE(ID INT,[Date] VARCHAR(8),[Type] VARCHAR(20))
INSERT INTO @Table VALUES
(1,'20140308','License'),
(2,'20140307','License'),
(3,'48'      ,'License')

Query

SELECT ID 
      ,CASE WHEN ISDATE([Date]) = 1
                THEN CONVERT(VARCHAR(10), CAST([DATE] AS DATE), 110)
            ELSE NULL END AS [Date]
      ,[Type]
FROM @Table

Набор результатов

╔════╦════════════╦═════════╗
║ ID ║    Date    ║  Type   ║
╠════╬════════════╬═════════╣
║  1 ║ 03-08-2014 ║ License ║
║  2 ║ 03-07-2014 ║ License ║
║  3 ║ NULL       ║ License ║
╚════╩════════════╩═════════╝