Другой вариант - двойное преобразование (проверьте эффективность при использовании в качестве критерия):
select strTempNo, dtmTempDateStart,
convert(varchar(10), Convert(datetime, dtmTempDateStart, 103), 126) As UTCDate
Я использую 103 здесь, поскольку данные уже в формате UTC, но это также работает (UTC ISO8601 - 126).
Если известно, что ваши даты всегда в американском формате, вы должны использовать 101.
В качестве альтернативы используйте 112 («безопасный» формат ISO) и вырежьте первые 8 символов из строки.
Пример данных: (Извините, американская таблица дат недоступна)
- 521002 2008-09-1500: 00: 00.000 2008-09-15
- 580195 2008-04-1500: 00: 00.000 2008-04-15
- 530058 2008-09-2200: 00: 00.000 2008-09-22
- 580194 2008-04-0200: 00: 00.000 2008-04-02
- 500897 2008-07-0100: 00: 00.000 2008-07-01
- 500966 2008-09-2300: 00: 00.000 2008-09-23