Depending on your coding style preference, you can avoid using concatenation by wrapping your echo'ed string in double quotes. This will allow you to place variables directly in the string. The performance benefit is rather microscopic, but you may find it easier to read and debug your work. I find that it is easy to have an extra or missing single quote and overlook it if there are a bunch of concatenations just to echo variables -- so generally try to avoid it unless writing an inline condition statement or function.
You also don't need to declare a new variable to store $date = $row['date'];
, it is perfectly valid to echo an array element like this: $row['date']
.
Use curly brackets around your echo'ed array element. Notepad++ or whatever you are coding on should (or probably can) nicely color your script to help you identify variables in your string.

I would update your mysql_
functions to mysqli
and write your code this way:
if(!$db=new mysqli("localhost","root","","employees")){
echo "Connection Error: ",$db->connect_error; // do not echo when live
}elseif(!$result=$db->query("SELECT DISTINCT LEFT(from_date,4) AS date FROM salaries")){
echo "Query Syntax Error: ",$db->error; // do not echo when live
}elseif(!$result->num_rows){
echo "Query Logic Error: No dates found in salaries table"; // write your preferred message
}else{
echo "<select>";
while($row=$result->fetch_assoc()){
echo "<option value=\"{$row['date']}\">{$row['date']}</option>";
}
echo "</select>";
}
*Notice that any double quotes used inside of the double quoted echo line must be escaped/prepended with \
.
In the comments under the PHP manual specs @ http://php.net/manual/en/language.operators.string.php there are some discussion points about string concatenation, curly brackets, and performance speed.