The only real solution to this is to store your datetime values as DATETIME, DATE, or DATETIME2 in your Database - that way you Parse it using the settings for the user that entered the date when it is entered, and it never needs to be converted again. Storing it as a string and parsing it later always leads to trouble - and by then you no longer have any user context to help you decide what format the date is in.
So right now you have a database where the information is stored badly and you have no idea if 01/02/03 is supposed to be 1st Feb 2003, 2nd Jan 2003, or the 3rd of Feb 2001.
Change your database, and re-enter all teh date info.
And do yourself a favour: Never concatenate strings to build a SQL command. It leaves you wide open to accidental or deliberate SQL Injection attack which can destroy your entire database. Use Parametrized queries instead.
When you concatenate strings, you cause problems because SQL receives commands like:
SELECT * FROM MyTable WHERE StreetAddress = 'Baker's Wood'
The quote the user added terminates the string as far as SQL is concerned and you get problems. But it could be worse. If I come along and type this instead: "x';DROP TABLE MyTable;--" Then SQL receives a very different command:
SELECT * FROM MyTable WHERE StreetAddress = 'x';DROP TABLE MyTable;
Which SQL sees as three separate commands:
SELECT * FROM MyTable WHERE StreetAddress = 'x';
A perfectly valid SELECT
DROP TABLE MyTable;
A perfectly valid "delete the table" command
And everything else is a comment.
So it does: selects any matching rows, deletes the table from the DB, and ignores anything else.
So ALWAYS use parameterized queries! Or be prepared to restore your DB from backup frequently. You do take backups regularly, don't you?