You can't do this:
if [ $End_Date != '-' -a $End_Date > $Start_Date ]; then
OK, you can do that, but you are redirecting the output of the [ command into a file named for your start date with "> $Start_Date" and your test is:
if [ $End_Date != '-' -a $End_Date ]; then
This collapses to testing if $End_Date is null or not.
All of this is legal, but possibly not what you intended.
The test(1) utility cannot handle dates. I suggest you convert your dates to the Julian format i.e. integers and then use test to compare these integers
Here is a pointer to an SysAdmin article on the subject:
Ok the -gt is now working but i need to test to see if my variables are null before i test the -gt, how do you do multiple test in one line? Is it something like this?