EDIT PENTING: Sekarang dimungkinkan untuk mencapai ini dengan bidang DATETIME sejak MySQL 5.6.5 , lihat postingan lainnya di bawah...
Versi sebelumnya tidak dapat melakukannya dengan DATETIME...
Tapi Anda bisa melakukannya dengan TIMESTAMP:
mysql> create table test (str varchar(32), ts TIMESTAMP DEFAULT CURRENT_TIMESTAMP);
Query OK, 0 rows affected (0.00 sec)
mysql> desc test;
+-------+-------------+------+-----+-------------------+-------+
| Field | Type | Null | Key | Default | Extra |
+-------+-------------+------+-----+-------------------+-------+
| str | varchar(32) | YES | | NULL | |
| ts | timestamp | NO | | CURRENT_TIMESTAMP | |
+-------+-------------+------+-----+-------------------+-------+
2 rows in set (0.00 sec)
mysql> insert into test (str) values ("demo");
Query OK, 1 row affected (0.00 sec)
mysql> select * from test;
+------+---------------------+
| str | ts |
+------+---------------------+
| demo | 2008-10-03 22:59:52 |
+------+---------------------+
1 row in set (0.00 sec)
mysql>
PERINGATAN: JIKA Anda menentukan kolom dengan CURRENT_TIMESTAMP ON sebagai default, Anda harus SELALU menentukan nilai untuk kolom ini atau nilai akan secara otomatis mengatur ulang dirinya sendiri ke "sekarang()" pada pembaruan. Ini berarti bahwa jika Anda tidak ingin nilainya berubah, pernyataan UPDATE Anda harus berisi "[nama kolom Anda] =[nama kolom Anda]" (atau nilai lain) atau nilainya akan menjadi "sekarang()". Aneh, tapi benar. Saya menggunakan 5.5.56-MariaDB