Дата-время и Дата-время2 Типы данных минимальные и максимальные значения, как показано ниже
+-----------+-----------------------------+------------------------------+-------------------------------------------------------------------------+
| DataType | MIN | MAX | STORAGE |
+-----------+-----------------------------+------------------------------+-------------------------------------------------------------------------+
| Datetime | 1753-01-01 00:00:00.000 | 12/31/9999 12:00:00 AM | 8 bytes |
| Datetime2 | 0001-01-01 00:00:00.0000000 | '9999-12-31 23:59:59.9999999 | Presicion 1-2 = 6 bytes precision 3-4 = 7 bytes precision 5-7 = 8 bytes |
+-----------+-----------------------------+------------------------------+-------------------------------------------------------------------------+
В соответствии с этими сведениями вы можете использовать следующие преобразования для вашей проблемы. Если TRY_CAST не может преобразовать DateTime, он возвращает выражение NULL, поэтому мы изменим это значение NULL на " 1753-01-01 "
SELECT TRY_CAST(ISNULL(TRY_CAST('01.01.0002' AS DATETIME), '1753-01-01') AS DATETIME) DateTime_Convert,
TRY_CAST('01.01.0002' AS DATETIME2) AS DateTime2_Convert;
Результат:
Обновленный набор результатов
+-------------------------+-----------------------------+
| DateTime_Convert | DateTime2_Convert |
+-------------------------+-----------------------------+
| 1753-01-01 00:00:00.000 | 0002-01-01 00:00:00.0000000 |
+-------------------------+-----------------------------+