Saya mempunyai jadual dengan struktur berikut:
+----+-------------+----------------+------------+------------+ | id | some column | another column | inserted | edited | +----+-------------+----------------+------------+------------+ | 1 | ... | ... | 2014-08-15 | 2016-03-04 | | 2 | ... | ... | 2015-09-16 | 2016-10-07 | | 3 | ... | ... | 2016-10-17 | 2016-11-16 | +----+-------------+----------------+------------+------------+
Apabila memasukkan entri baharu, tarikh semasa hendaklah ditambahkan pada lajur inserted
. Ia tidak sepatutnya berubah.
Semasa mengedit entri, tarikh semasa hendaklah ditambahkan pada lajur edited
dan tarikh hendaklah dikemas kini setiap kali entri ini diedit.
Pendekatan saya adalah untuk menentukan jenis data dalam kedua-dua kes date
并将标准值更改为 CURDATE()
。但相反,只是将 CURDATE()
untuk disisipkan sebagai rentetan.
KEMASKINI Berikut ialah contoh pertanyaan:
CREATE TABLE `test`.`testtab` ( `id` INT NOT NULL auto_increment, `some column` VARCHAR(100) NULL, `another column` VARCHAR(100) NULL, `inserted` VARCHAR(100) NULL DEFAULT 'CURDATE()', `edited` VARCHAR(100) NULL DEFAULT 'CURDATE()', PRIMARY KEY (`id`) ) engine = innodb;
Saya tidak pasti tentang jenis data, walaupun.
Cuba ubah suai skema anda seperti berikut
Semoga ini membantu.
Bergantung pada keperluan anda, ini sesuai untuk anda:
Kemudian ekstrak hanya bahagian kurma semasa memproses:
Anda boleh menggunakan pencetus sebagai penyelesaian untuk menetapkan medan datetime kepada NOW() untuk sisipan baharu:
Ia sepatutnya berfungsi pada kemas kini juga