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

Linq:Sắp xếp theo ngày khi nó được lưu trữ dưới dạng văn bản

Bạn có thể thêm một cột được tính toán vào bảng sẽ chuyển đổi các chuỗi đó thành ngày khi dấu phân biệt của bạn có một giá trị cụ thể (ở đây tôi vừa sử dụng 'date' ).

ALTER TABLE Foo
ADD trueDate AS
    CASE 
        WHEN type = 'date' THEN CONVERT(date, 'mixedColumn', 101)
        ELSE NULL
    END
PERSISTED

Nếu bạn có thông tin thời gian, thì date phải là datetime trong CONVERT() chức năng.

Ngoài ra, 101 là mã kiểu cho biết định dạng dự kiến ​​là MM/dd/yyyy . Nếu bạn có điều gì đó khác, hãy tham khảo phần này: http://msdn.microsoft .com / en-us / library / ms187928.aspx , nhưng hãy nhớ rằng nếu bạn sử dụng kiểu dưới 100 thì biểu thức của bạn sẽ được coi là không xác định và bạn không thể đặt cột được tính toán của mình PERSISTED , do đó, chuyển đổi sẽ được thực hiện nhanh chóng với mỗi truy vấn (bạn không muốn điều đó).

Cột được tính sẽ tự cập nhật khi giá trị hàng thay đổi; nếu không, các giá trị vẫn tồn tại và có thể truy vấn giống như trong bất kỳ cột nào khác. Không cần trình kích hoạt.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Pyodbc:Lỗi hết thời gian đăng nhập

  2. Cách tạo Ràng buộc khóa ngoại trên nhiều cột trong SQL Server - Hướng dẫn sử dụng SQL Server / TSQL Phần 67

  3. Lấy phần bên trái của chuỗi trong SQL Server (T-SQL)

  4. Làm thế nào để chờ trong 2 giây?

  5. Truy vấn PIVOT động của SQL Server?