Simple: don't store date time values as strings - it always gives problems.
The trouble is that when users enter dates, they enter them in their local date format:
01-02-12
which could be 1st Feb 2012, 2nd Jan 2012, 12th Feb 2001, or even just plain wrong!
The only time you have any idea what format the user is entering dates in is when he enters them - so if you don't do any validation and conversion at that time then you have completely lost the opportunity and once it enters your DB you have no idea which of them it is.
So change your DB: store date / time values as DATETIME columns, validate and correct your existing data, and work from there. Otherwise, you are always going to get problems and this is just the start of them!