sql >> Base de Datos >  >> RDS >> Sqlserver

SQL Server ISDATE en vista indexada

Debería ser, en todo caso:

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

pero no está usando ISDATE CON CONVERT, ya que no hay una expresión como

ISDATE(CONVERT(varchar,ColumnName,112)) 

sin la conversión anidada, el valor de retorno depende de cosas como la configuración del idioma, por lo tanto, es un comportamiento no determinista. Sin conocimiento "externo", no es posible predecir el resultado que se obtiene, basándose únicamente en la entrada.