With '/', php assumes American; with '-', php assumes European. But that's prolly irrelevant, since mysql wants 'formatted' date/time, not seconds since 1/1/70.
Try
:
$date = "2011/12/13 00:00";
$date2 = "2011/12/13 23:59:59";
$order = mysql_query("SELECT * FROM orders WHERE WORK='COMPLETED' AND fixed_date BETWEEN $date AND $date2 ")
or die(mysql_error());
I think mysql wants date/time to be in a semi-human-readable format. (Hmmm. Semi-human readable? or semi human-readable? :)) Assuming, of course, that fixed_date is a date or datetime field. You might even try 24:00:00; mysql may be smart enough to deal with the intial moment of 'tomorrow' properly.
And to answer the specific question, I dunno. Mysql may assume some set date/time in the absence of a sane value.
FWIW, I've been referencing the online PHP manual at php.net and the MySQL reference PDF for years. Those two tomes have always gotten me through all problems, provided I pay attention to what the result or error message *says* and not the ASCII characters that are printed.