sql >> Database teknologi >  >> RDS >> Sqlserver

SQL Server ISDATE i indekseret visning

Det burde være, hvis overhovedet:

SELECT ... 
    CASE 
         WHEN ISDATE(ColumnName) = 1 THEN CONVERT(datetime, ColumnName, 103) 
         ELSE NULL 
    END
....

men du bruger ikke ISDATE MED KONVERT, da der ikke er noget udtryk som

ISDATE(CONVERT(varchar,ColumnName,112)) 

uden den indlejrede konverter er returværdien afhængig af ting som sprogindstillinger, derfor er det ikke-deterministisk adfærd. Uden "ekstern" viden er det ikke muligt at forudsige det resultat, man får, baseret på input alene.



  1. PHP multiple object funktionskald

  2. Kontroller status for alle databasemail-meddelelser i SQL Server (T-SQL)

  3. Hvordan får man den automatisk inkrementerede PK fra Oracle-databasen?

  4. Kan du udelade PDO-forberedelse, hvis der ikke er nogen pladsholder/dynamiske data i en forespørgsel?