Non funziona perche la data formata a quel modo e' una stringa.

dovresti impostare la data che ricevi dal form come yyyy-mm-dd e poi potrai fare tutti i confronti che vuoi a partire dal between a tutto il resto direttamente con il valore del campo.

Una sola attenzione: poiche' il timestamp considera anche le ore:minuti:secondi, la data fornita come yyyy-mm-dd assume come valore di default 00:00:00 e quindi a parita' di data risultera' minore di quella impostata nel campo datetime. Es. oggi:

2006-11-08 00:00:00 < 2006-11-08 12:12:00