C'est très ancien, mais étant donné les nombreuses expériences que j'ai eues avec les dates, vous voudrez peut-être considérer ceci: les gens utilisent des paramètres régionaux différents, en tant que tels, certaines personnes (et certaines bases de données / ordinateurs, selon les paramètres régionaux) peuvent lire ceci le 11/12/2016 comme le 11 décembre 2016 ou le 12 novembre 2016. Encore plus, le 16/11/12 fourni à la base de données MySQL sera converti en interne au 12 novembre 2016, tandis que la base de données Access fonctionnant sur un ordinateur de configuration régionale britannique interprétera et stockez-le le 16 novembre 2012.
Par conséquent, je me suis fixé comme politique d'être explicite chaque fois que je vais interagir avec des dates et des bases de données. Je fournis donc toujours mes requêtes et codes de programmation comme suit:
SELECT FirstName FROM Students WHERE DoB >= '11 Dec 2016';
Notez également qu'Access acceptera le #, donc:
SELECT FirstName FROM Students WHERE DoB >= #11 Dec 2016#;
mais le serveur MS SQL ne le fera pas, donc j'utilise toujours "'" comme ci-dessus, ce que les deux bases de données acceptent.
Et lorsque j'obtiens cette date à partir d'une variable dans le code, je convertis toujours le résultat en chaîne comme suit:
"SELECT FirstName FROM Students WHERE DoB >= " & myDate.ToString("d MMM yyyy")
J'écris ceci parce que je sais que parfois certains programmeurs peuvent ne pas être assez désireux de détecter la conversion inhérente. Il n'y aura pas d'erreur pour les dates <13, juste des résultats différents!
Quant à la question posée, ajoutez un jour à la dernière date et faites la comparaison comme suit:
dated >= '11 Nov 2016' AND dated < '15 Nov 2016'