At first glance, it looks like your query is not looking for ayear ahead. Instead, it is still listed as '2004', not 2005.
I personally use a unix timestamp for easier alts later on. Then, I slip it into a formatting function. For php, I use mktime() to store the timestamp, then date("Y-M-d",$stored_time) for retrieval...jsut a little extra that I'm sure you are aware of.
But, like I said, it looks like your year is a little off.
Also, I usually do this for my concatated strings...
$maxlength = 255;
$short_str = substr($string,0,$maxlength);
$string = $short_str ."...";
You could also...
$string = substr($str,0,255) . "...";
I would also throw in checcks to see how long the news items is compared to what you want the max length of the news item to be displayed in the preview state.
Anyhow, babbling right now. We just got back from a graduation of my brother's and everyone is still rev'ved!
Later, and I hope something in post helps!