You have "(today)" inside double quotes.
Excel treates text inside these double quotes as text - hence you get (today) displayed in the cell.
The Excel function is TODAY() (no quotes)
The formula becomes: =IF(P9>=0,TODAY(),"")
This will likely show as a number such as 40409
40409 is the Excel date number for 19 August 2010
You can then format the cell with a date format such as dd/mmm/yy
You can use NOW() to get date and time:
then format something like this: dd/mmm/yy hh:mm
There is also a problem with how you have used IF to test for an empty cell.
Empty cells often get treated as containing zero - Excel does a lot of 'implicit' conversions.
You IF function test is TRUE for empty cells - which is not what you want.
Try this: =IF(P9<>"",NOW(),"")
An alternative is to test if there is a number in the cell: =IF(ISNUMBER(P9),NOW(),"")
There is one other issue regarding using TODAY() or NOW() - both are 'volatile' functions, which means that they re-calculate every time any cell on the worksheet changes. This limits their use for time- or date-stamping.
It is possible to use a Visual Basic macro to time- or date-stamp cells. If that is what you need please look at this post
and come back if you need more help.