Убедитесь, что вы не вставляете строки с пустой датой:
INSERT INTO orders VALUES (1, 1, '');
Выше будет вставлена дата 0000-00-00 00:00:00
.
Следующее работает, как и ожидалось, в MySQL 5.0.51a:
CREATE TABLE IF NOT EXISTS orders(
order_no VARCHAR(16) NOT NULL,
volunteer_id VARCHAR(16) NOT NULL,
date TIMESTAMP DEFAULT NOW(),
PRIMARY KEY (order_no));
INSERT INTO orders (order_no, volunteer_id) VALUES (1, 1);
INSERT INTO orders (order_no, volunteer_id) VALUES (2, 1);
INSERT INTO orders (order_no, volunteer_id) VALUES (3, 1);
INSERT INTO orders (order_no, volunteer_id) VALUES (4, 1);
SELECT * FROM orders;
+----------+--------------+---------------------+
| order_no | volunteer_id | date |
+----------+--------------+---------------------+
| 1 | 1 | 2010-03-29 17:10:37 |
| 2 | 1 | 2010-03-29 17:10:40 |
| 3 | 1 | 2010-03-29 17:10:44 |
| 4 | 1 | 2010-03-29 17:10:48 |
+----------+--------------+---------------------+
4 rows in set (0.00 sec)