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

SQL Server ISDATE В индексиран изглед

Трябва да бъде, ако изобщо:

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

но не използвате ISDATE С CONVERT, тъй като няма израз като

ISDATE(CONVERT(varchar,ColumnName,112)) 

без вложеното преобразуване връщаната стойност зависи от неща като езикови настройки, следователно това е недетерминирано поведение. Без „външно“ знание не е възможно да се предвиди резултатът, който човек получава, въз основа само на въведените данни.



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

  2. Експортирайте таблични данни от един SQL сървър на друг

  3. Как да анализирам json данни в SQL Server 2012?

  4. загуба на мащаб при извършване на изчисление

  5. VBA код за добавяне на свързана таблица с първичен ключ