Sqlserver
 sql >> база данни >  >> RDS >> Sqlserver

Период от време, попадащ между две дати в LINQ заявка

Не са ми 100% ясни изискванията ви. Във вашия начален ред поискахте записи, „където диапазонът на въвеждане попада между две полета за дата“, но в реда „Допълнително“ предполагате, че не искате да върнете записи, където началната дата на срещата не е равна на крайната дата на вашето въвеждане. Приемам, че това са две различни изисквания, така че ще ви дам две различни заявки.

Първата заявка е:

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

Втората заявка е:

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

Първата заявка връща записи, които "съдържат" въведените дати.

Втората заявка връща записи, които "припокриват" въведените дати.

Мисля, че е по-логично да искате заявката за припокриване и тази да отговаря на вашето изискване „14:00 – 15:00 не връща стойност за 15:00-16:00“.

Уведомете ме, ако допуснах грешка, като разбрах вашите изисквания и трябва да направя промени.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Объркан относно UPDLOCK, HOLDLOCK

  2. TSQL - Съединение с използване на пълен текст СЪДЪРЖА

  3. Разделете низ, разделен със запетая, и вмъкнете в таблица (int)

  4. Как да сравним, ако два низа съдържат едни и същи думи в T-SQL за SQL Server 2008?

  5. Как да изпратите по имейл резултатите от заявка в SQL Server (T-SQL)