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

Việc chuyển đổi sang datetime chỉ không thành công trên mệnh đề WHERE?

Có vẻ như bạn đang giả định một số loại đánh giá ngắn mạch hoặc thứ tự đảm bảo của các vị từ trong WHERE mệnh đề. Điều này không được đảm bảo. Khi bạn có các kiểu dữ liệu hỗn hợp trong một cột như vậy, cách an toàn duy nhất để xử lý chúng là sử dụng CASE biểu thức.

Sử dụng (ví dụ:)

CONVERT(DATETIME, 
      CASE WHEN ISDATE(pa.Attribute_Value) = 1 THEN pa.Attribute_Value END)

Không

CONVERT(DATETIME, pa.Attribute_Value)


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Trả lại tất cả các hàng từ một phân vùng cụ thể trong SQL Server (T-SQL)

  2. Entity Framework 6 - Truy vấn thời gian

  3. Sử dụng cột Thời gian với NHibernate, Fluent NHibernate và SQL Server 2008

  4. Thay đổi chuỗi kết nối động

  5. Chuyển đổi DateTime sang định dạng YYYY-MM-DD trong SQL Server