Vous n'avez pas de problème avec les "deux derniers".
Cependant, vous avez un problème avec chacun d'eux, mais un point après l'autre.
Les dates littérales dépendent de la culture de votre système
Vos dates sont interprétées comme MM-JJ-AAAA. Cette interprétation dépend de la culture de votre système. Les trois premiers se transforment en mauvaises dates mais fonctionnent. Le 4ème se casse et le cinquième n'est jamais exécuté (en raison de l'erreur précédente).
L'erreur réelle se situe donc à la ligne 4.
Chaque fois que vous traitez des dates, utilisez des formats indépendants de la culture. Il est préférable d'utiliser l'un des éléments suivants-
format universel
20150730 (=> the 30th of July in 2015)
Format ODBC
{d'2015-07-30'} or {t'23:30:59'} or {ts'2015-07-30 23:30:59'}
ISO 8601
'2015-07-30T00:00:00'