Sqlserver
 sql >> Teknologi Basis Data >  >> RDS >> Sqlserver

Rentang tanggal berada di antara dua tanggal dalam kueri LINQ

Saya tidak 100% jelas tentang kebutuhan Anda. Di baris pembuka Anda, Anda meminta catatan "di mana rentang tanggal input berada di antara dua bidang tanggal", tetapi di baris "Selain itu" Anda menyiratkan bahwa Anda tidak ingin mengembalikan catatan di mana tanggal mulai janji temu tidak sama tanggal akhir input Anda. Saya menganggap ini sebagai dua persyaratan yang berbeda, jadi saya akan memberi Anda dua pertanyaan yang berbeda.

Pertanyaan pertama adalah:

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

Pertanyaan kedua adalah:

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

Kueri pertama mengembalikan catatan yang "berisi" tanggal input.

Kueri kedua mengembalikan catatan yang "tumpang tindih" dengan tanggal input.

Saya pikir lebih masuk akal jika Anda menginginkan kueri yang tumpang tindih dan kueri ini akan memenuhi persyaratan "14:00 - 15:00 tidak mengembalikan nilai untuk 15:00-16:00".

Beri tahu saya jika saya membuat kesalahan dalam memahami persyaratan Anda dan perlu melakukan perubahan apa pun.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Tambahkan kolom ke SQL Server

  2. Bagaimana cara mengambil empat karakter terakhir dari varchar?

  3. Tutorial Partisi dan Partisi Tabel SQL Server

  4. Tidak dapat terhubung ke localDB di VS2012 – Terjadi kesalahan terkait jaringan atau spesifik saat membuat koneksi ke SQL Server...

  5. SQL Server 2008 - Apakah pemicu berjalan dengan izin yang sama dengan login/pengguna?