How are you actually storing the datefield values? Is it a DATE or DATETIME column? What version of MySQL are you using?
You can't simply subtract DATE or DATETIME values from one another. If datefield is actually a DATE or DATETIME, and you're using MySQL 4.1.1 or newer, you can get the difference with this:
SELECT DATEDIFF(datefield, NOW()) AS difference;
DATEDIFF() returns the difference between two DATE and/or DATETIME values as a number of days. In this case, the result will be positive if the date's in the future, and negative if it's in the past:
mysql> SELECT NOW();
+---------------------+
| NOW() |
+---------------------+
| 2005-06-27 11:29:18 |
+---------------------+
1 row in set (0.00 sec)
mysql> SELECT DATEDIFF('2005-06-01', NOW()) AS difference;
+------------+
| difference |
+------------+
| -26 |
+------------+
1 row in set (0.00 sec)
mysql> SELECT DATEDIFF('2005-07-01', NOW()) AS difference;
+------------+
| difference |
+------------+
| 4 |
+------------+
1 row in set (0.00 sec)
Otherwise, you might want to look at
http://dev.mysql.com/doc/mysql/en/date-and-time-functions.html or provide additional info.
Jon Stephens
MySQL Documentation Team @ Oracle
MySQL Dev Zone
MySQL Server Documentation
Oracle