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

Chuyển đổi chuỗi thành giá trị ngày giờ trong LINQ

Có lẽ bạn chỉ cần thực hiện phân tích cú pháp cục bộ thay vì trong cơ sở dữ liệu, thông qua AsEnumerable :

var query = db.tb1.Select(tb => tb.dt)
                  .AsEnumerable() // Do the rest of the processing locally
                  .Select(x => DateTime.ParseExact(x, "yyyyMMdd",
                                                CultureInfo.InvariantCulture));

Lựa chọn ban đầu là để đảm bảo rằng chỉ cột có liên quan được tìm nạp, thay vì toàn bộ thực thể (chỉ phần lớn cột bị loại bỏ). Tôi cũng đã tránh sử dụng kiểu ẩn danh vì dường như không có ý nghĩa gì ở đây.

Nhân tiện, hãy lưu ý cách tôi đã chỉ rõ văn hóa bất biến - bạn gần như chắc chắn không muốn chỉ sử dụng văn hóa hiện tại. Và tôi đã thay đổi mẫu được sử dụng để phân tích cú pháp, vì nó có vẻ giống như nguồn của bạn dữ liệu ở yyyyMMdd định dạng.

Tất nhiên, nếu có thể, bạn nên thay đổi lược đồ cơ sở dữ liệu để lưu trữ các giá trị ngày trong cột dựa trên ngày, thay vì dưới dạng văn bản.



  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ách tách CSV từ một cột thành các hàng trong bảng mới trong MSSQL 2008 R2

  2. Thêm cột vào SQL Server

  3. So sánh ngày tháng trong T-SQL, bỏ qua phần thời gian

  4. Truy vấn bảng khác nhau dựa trên một tham số

  5. Làm cách nào để sử dụng SqlCommand để TẠO CƠ SỞ DỮ LIỆU với tên db được tham số hóa?