sql >> Databasteknik >  >> RDS >> Sqlserver

Finns det en funktion som isdate() för datetime2?

I SQL Server 2012 kan du använda TRY_CONVERT :

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

Resultat:

2012-02-02 13:42:55.2323623    NULL

Eller 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);

(Samma resultat.)

Ursäkta att jag inte har ett smart svar till dig för

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

Men det känns smutsigt.

TRY_CONVERT dokumentation om Microsoft Docs
TRY_PARSE dokumentation om Microsoft Docs



  1. Skapar du en webbapp som kan fungera offline, lagra data och sedan synkronisera den till fjärr-MySQL när du är online?

  2. PHP - Observera:Odefinierat index:

  3. MYSQL-förfrågan | GRUPP FÖR DAG

  4. Knepig MySQL batchfråga