Masukkan tarikh semasa semasa memasukkan
P粉764836448
P粉764836448 2023-10-24 17:35:11
0
2
498

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.

P粉764836448
P粉764836448

membalas semua(2)
P粉277305212

Cuba ubah suai skema anda seperti berikut

`inserted` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
`edited` timestamp DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP

Semoga ini membantu.

P粉009828788

Bergantung pada keperluan anda, ini sesuai untuk anda:

CREATE TABLE `test`.`testtab` 
  ( 
     `id`             INT NOT NULL auto_increment, 
     `some column`    VARCHAR(100) NULL, 
     `another column` VARCHAR(100) NULL, 
     `inserted`       DATETIME DEFAULT   CURRENT_TIMESTAMP, 
     `edited`         DATETIME ON UPDATE CURRENT_TIMESTAMP, 
     PRIMARY KEY (`id`) 
  ) 
engine = innodb;

Kemudian ekstrak hanya bahagian kurma semasa memproses:

DATE_FORMAT(datetime, '%Y-%m-%d')

Anda boleh menggunakan pencetus sebagai penyelesaian untuk menetapkan medan datetime kepada NOW() untuk sisipan baharu:

CREATE TRIGGER `triggername` BEFORE INSERT ON  `tablename` 
FOR EACH ROW 
SET NEW.datetimefield = NOW()

Ia sepatutnya berfungsi pada kemas kini juga

Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!