Sqlserver
 sql >> база данни >  >> RDS >> Sqlserver

Има ли функция като isdate() за datetime2?

В SQL Server 2012 можете да използвате TRY_CONVERT :

SELECT TRY_CONVERT(DATETIME2, '2012-02-02 13:42:55.2323623'),
       TRY_CONVERT(DATETIME2, '2012-02-31 13:42:55.2323623');

Резултати:

2012-02-02 13:42:55.2323623    NULL

Или 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);

(Същите резултати.)

Съжалявам, че нямам умен отговор за вас за

SELECT ISDATE(LEFT('2012-02-02 13:42:55.2323623', 23));

Но това се чувства мръсно.

TRY_CONVERT документация в Microsoft Docs
TRY_PARSE документация в Microsoft Docs



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Вмъкване на резултати от съхранена процедура във временна таблица

  2. Как да сравняваме данни между две таблици в различни бази данни с помощта на Sql Server 2008?

  3. Отмяна на вътрешната транзакция на вложената транзакция

  4. Високопроизводителен сървър - какво да използвам?

  5. Обединяване на C# SQLConnection