Sqlserver
 sql >> Baza danych >  >> RDS >> Sqlserver

SQL Server ISDATE w widoku indeksowanym

Powinno być, jeśli w ogóle:

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

ale nie używasz funkcji ISDATE WITH CONVERT, ponieważ nie ma wyrażenia takiego jak

ISDATE(CONVERT(varchar,ColumnName,112)) 

bez konwertowania zagnieżdżonego wartość zwracana jest zależna od takich rzeczy, jak ustawienia języka, stąd jest to zachowanie niedeterministyczne. Bez wiedzy „zewnętrznej” nie jest możliwe przewidzenie wyniku, jaki otrzymujemy, na podstawie samych danych wejściowych.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Zapytanie o połączenia Sql

  2. Indeksowanie Entity Framework WSZYSTKIE kolumny kluczy obcych

  3. Jak używać PHP do łączenia się z serwerem sql

  4. Pominąć pierwszy wiersz w SQL Server 2005?

  5. Najlepsze praktyki dotyczące szyfrowania baz danych w SQL Server 2005