Sqlserver
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Sqlserver

SQL Server ISDATE trong dạng xem được lập chỉ mục

Nó phải là, nếu ở tất cả:

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

nhưng, bạn không sử dụng ISDATE WITH CONVERT, vì không có biểu thức nào giống như

ISDATE(CONVERT(varchar,ColumnName,112)) 

nếu không có chuyển đổi lồng nhau, giá trị trả về phụ thuộc vào những thứ như cài đặt ngôn ngữ, do đó đó là hành vi không xác định. Nếu không có kiến ​​thức "bên ngoài", không thể dự đoán kết quả mà người ta nhận được, chỉ dựa vào đầu vào.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Các bản sửa lỗi liên quan đến hiệu suất cho SQL Server 2012

  2. Tôi nhận được dữ liệu chuỗi, lỗi cắt ngắn phải từ PHP bằng cách sử dụng ODBC và kết nối với phiên bản Microsoft SQL Server 2008R2

  3. Tính thời gian làm việc từ bảng ca và nghỉ giải lao

  4. SQL, câu hỏi về tham gia

  5. Tại sao tôi nhận được những kết quả khác nhau này từ hai truy vấn SQL?