Você não tem um problema com os "últimos dois".
No entanto, você tem um problema com todos eles, mas um ponto após o outro.
As datas literais dependem da cultura do seu sistema
Suas datas são interpretadas como MM-DD-AAAA. Essa interpretação depende da cultura do seu sistema. Os três primeiros estão se transformando em datas erradas, mas funcionam. A 4ª quebra e a quinta nunca é executada (devido ao erro anterior).
Portanto, o erro real está na linha 4.
Sempre que você lidar com datas, use formatos independentes de cultura. É melhor usar qualquer um dos seguintes-
formato universal
20150730 (=> the 30th of July in 2015)
Formato 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'