Если вы можете сделать предположение, что все даты будут в течение последних десяти лет, вы можете использовать следующий код:
select convert(datetime, replace('Jan.08', '.', ' 20'))
select convert(datetime, replace('Dec.08', '.', ' 20'))
, который форматирует строку в формат «январь 2008», чтооднозначна.«Dec.08» может быть «8 декабря этого года» или «декабрь 2008 года».
Или вы можете использовать предложение Мэтта Гибсона о добавлении «1».до вашей даты до конвертации.Это устраняет неоднозначность и дает преимущество использования любых значений по умолчанию, которые SQL-сервер использует для дат (т. Е. 50 - это 1950, а 49 - это 2049).
select convert(datetime, '1.' + 'Jan.08')
select convert(datetime, '1.' + 'Dec.49')
select convert(datetime, '1.' + 'Jan.50')