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

Chuyển đổi không thành công khi chuyển đổi ngày và / hoặc thời gian từ chuỗi ký tự

Bạn cần chia ORDER BY thành nhiều CASE tuyên bố:

ORDER BY 
    CASE WHEN @orderby = 0 THEN news_edits.[time] END DESC,
    CASE WHEN @orderby = 1 THEN news_edits.lastedit END DESC,
    CASE WHEN @orderby = 2 THEN news_edits.title END DESC

Điều này là do một CASE câu lệnh yêu cầu tất cả các nhánh phải có kiểu dữ liệu tương thích. Vì chuỗi ký tự của bạn trong một CASE không thể chuyển đổi thành ngày giờ được trả về từ CASE khác , bạn gặp lỗi chuyển đổi.



  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ích xuất giá trị số đầu tiên từ chuỗi sql

  2. Trả về 0 khi kết quả trống

  3. Chèn hàng loạt trường có chiều rộng cố định

  4. bổ sung ngày tháng trong hàm sql

  5. Chuyển bảng làm tham số cho SQLCLR TV-UDF