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

Phạm vi ngày nằm giữa hai ngày trong truy vấn LINQ

Tôi không rõ ràng 100% về yêu cầu của bạn. Trong dòng mở đầu, bạn đã yêu cầu các bản ghi "trong đó phạm vi ngày đầu vào nằm giữa hai trường ngày", nhưng trong dòng "Ngoài ra", bạn ngụ ý rằng bạn không muốn trả lại các bản ghi mà ngày bắt đầu cuộc hẹn không bằng ngày kết thúc đầu vào của bạn. Tôi coi đây là hai yêu cầu khác nhau, vì vậy tôi sẽ cung cấp cho bạn hai truy vấn khác nhau.

Truy vấn đầu tiên là:

    from t1 in db.Appointments
    where date2 > t1.AppointmentStart
    where date1 < t1.AppointmentEnd
    select t1;

Truy vấn thứ hai là:

    from t1 in db.Appointments
    where date2 > t1.AppointmentStart
    where date1 < t1.AppointmentEnd
    select t1;

Truy vấn đầu tiên trả về các bản ghi "chứa" ngày nhập.

Truy vấn thứ hai trả về các bản ghi "trùng lặp" ngày nhập.

Tôi nghĩ rằng bạn muốn truy vấn chồng chéo sẽ hợp lý hơn và truy vấn này sẽ đáp ứng yêu cầu "14:00 - 15:00 không trả về giá trị cho 15:00-16:00".

Hãy cho tôi biết nếu tôi hiểu sai yêu cầu của bạn và cần thực hiện bất kỳ thay đổi nà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. Nối các giá trị dựa trên ID

  2. Bắt Hibernate và SQL Server để chơi tốt với VARCHAR và NVARCHAR

  3. Lỗi tràn số học khi chuyển đổi biểu thức thành kiểu dữ liệu ngày giờ. (trong khi hiển thị ngày giờ ..)

  4. Cách APPROX_COUNT_DISTINCT () hoạt động trong SQL Server

  5. Trình điều khiển không thể thiết lập kết nối an toàn với SQL Server bằng cách sử dụng mã hóa Lớp cổng bảo mật (SSL)