How about if you try and limit your query accuracy. Instead of using:
SELECT * FROM student WHERE dat= '2011-05-01';
Try using a range like so ( using '=>' instead of '=' ):
SELECT * FROM student WHERE dat=> '2011-05-01';
Caution! this should depend on what data you would like to retrieve, if you want to retrieve an exact match then solution 1 is your best bet otherwise go wild and use solution 2.
Happy coding,
Morgs