sql >> Databáze >  >> RDS >> Sqlserver

Časové období spadající mezi dvě data v dotazu LINQ

Vaše požadavky mi nejsou 100% jasné. V úvodním řádku jste požádali o záznamy, „kde vstupní rozsah dat spadá mezi dvě datová pole“, ale v řádku „Dodatečně“ naznačujete, že nechcete vracet záznamy, kde se datum zahájení schůzky nerovná datum ukončení vašeho vstupu. Považuji to za dva různé požadavky, takže vám dám dva různé dotazy.

První dotaz je:

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

Druhý dotaz je:

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

První dotaz vrátí záznamy, které "obsahují" vstupní data.

Druhý dotaz vrátí záznamy, které se „překrývají“ vstupní data.

Myslím, že dává větší smysl, že chcete dotaz na překrytí a tento splní váš požadavek „14:00 - 15:00 nevrací hodnotu pro 15:00-16:00“.

Dejte mi vědět, pokud jsem udělal chybu při pochopení vašich požadavků a je třeba provést nějaké změny.



  1. Jak nastavím časové pásmo MySQL?

  2. převést hodnotu sloupce jsonb na více sloupců v PostgreSQL

  3. Jak přidat výchozí omezení v MySQL

  4. MySQL Relational Division