W SQL Server 2012 możesz użyć TRY_CONVERT :
SELECT TRY_CONVERT(DATETIME2, '2012-02-02 13:42:55.2323623'),
TRY_CONVERT(DATETIME2, '2012-02-31 13:42:55.2323623');
Wyniki:
2012-02-02 13:42:55.2323623 NULL
Lub TRY_PARSE :
SELECT TRY_PARSE('2012-02-02 13:42:55.2323623' AS DATETIME2),
TRY_PARSE('2012-02-31 13:42:55.2323623' AS DATETIME2);
(Te same wyniki.)
Przepraszam, że nie mam dla ciebie mądrej odpowiedzi na
Ale to jest brudne.
SELECT ISDATE(LEFT('2012-02-02 13:42:55.2323623', 23));
TRY_CONVERT dokumentacja dotycząca Microsoft Docs
TRY_PARSE dokumentacja dotycząca Microsoft Docs