Я конвертирую данные varchar на сегодняшний день на сервере SQL.
Таблица с данными, как показано ниже,
Таким образом, он может иметь значение NULL, правильно отформатированную дату и может иметь как 19900411
, так и 04221995
.
Поэтому я пробовал что-то вроде ниже, но получаю ошибку.
SELECT CASE
WHEN ISNULL(CAST(Dob AS VARCHAR), '') = '' THEN NULL
WHEN LEN(CAST(Dob AS VARCHAR)) = '8' THEN CONVERT(
VARCHAR(10),
CONVERT(date, RIGHT(Dob, 4) + LEFT(Dob, 2) + SUBSTRING(Dob, 3, 2)),
103
)
ELSE CONVERT(VARCHAR, CAST(Dob AS CHAR(8)), 103)
END
FROM TableName
WHERE Dob IS NOT NULL
Сообщение 241, уровень 16, состояние 1, строка 3 Ошибка преобразования при преобразовании даты и/или времени из строки символов.
Я хотел получить вывод в формате даты MM-dd-yyyy
Пожалуйста, помогите мне! Спасибо!
04221995
- person pedram   schedule 19.05.201612301123
30 декабря 1123 года или 23 ноября 1230 года? крайне важно иметь возможность точно идентифицировать каждый формат, иначе вы получите ошибки в лучшем случае или неправильные даты в худшем случае. - person Zohar Peled   schedule 19.05.2016