Ini sudah sangat tua, tetapi mengingat banyak pengalaman yang saya miliki dengan tanggal, Anda mungkin ingin mempertimbangkan ini: Orang menggunakan pengaturan regional yang berbeda, seperti itu, beberapa orang (dan beberapa database / komputer, tergantung pada pengaturan regional) dapat membaca ini tanggal 11/12/2016 sebagai 11 Desember 2016 atau 12 November 2016. Terlebih lagi, 16/11/12 yang dipasok ke basis data MySQL akan dikonversi secara internal menjadi 12 November 2016, sedangkan basis data Access yang berjalan pada komputer pengaturan regional Inggris akan menafsirkan dan simpan sebagai 16 Nov 2012.
Oleh karena itu, saya membuat kebijakan saya untuk menjadi eksplisit setiap kali saya akan berinteraksi dengan tanggal dan basis data. Jadi saya selalu menyediakan kueri dan kode pemrograman saya sebagai berikut:
SELECT FirstName FROM Students WHERE DoB >= '11 Dec 2016';
Perhatikan juga bahwa Access akan menerima #, dengan demikian:
SELECT FirstName FROM Students WHERE DoB >= #11 Dec 2016#;
tetapi MS SQL server tidak akan, jadi saya selalu menggunakan "'" seperti di atas, yang diterima oleh kedua database.
Dan ketika mendapatkan tanggal itu dari variabel dalam kode, saya selalu mengonversi hasilnya menjadi string sebagai berikut:
"SELECT FirstName FROM Students WHERE DoB >= " & myDate.ToString("d MMM yyyy")
Saya menulis ini karena saya tahu kadang-kadang beberapa programmer mungkin tidak cukup tertarik untuk mendeteksi konversi yang melekat. Tidak akan ada kesalahan untuk tanggal <13, hanya hasil yang berbeda!
Adapun pertanyaan yang diajukan, tambahkan satu hari ke tanggal terakhir dan buat perbandingan sebagai berikut:
dated >= '11 Nov 2016' AND dated < '15 Nov 2016'