Computer >> Máy Tính >  >> Lập trình >> MySQL

MySQL có thể tự động lưu trữ dấu thời gian trong một hàng không?

Có, bạn có thể đạt được điều này bằng hai cách sau.

  • Cách tiếp cận đầu tiên Tại thời điểm tạo bảng.

  • Cách tiếp cận thứ hai Tại thời điểm viết truy vấn.

Cú pháp như sau.

CREATE TABLE yourTableName
(
yourDateTimeColumnName datetime default current_timestamp
);

Bạn có thể sử dụng lệnh thay đổi.

Cú pháp như sau.

ALTER TABLE yourTableName ADD yourColumnName datetime DEFAULT CURRENT_TIMESTAMP;

Triển khai cả hai cú pháp ngay bây giờ.

Cách tiếp cận đầu tiên như sau.

mysql> create table CurrentTimeStampDemo
-> (
-> CreationDate datetime default current_timestamp
-> );
Query OK, 0 rows affected (0.61 sec)

Nếu bạn không chuyển bất kỳ tham số nào cho cột ‘CreationDate’, thì MySQL theo mặc định sẽ lưu trữ dấu thời gian hiện tại.

Chèn bản ghi trong bảng bằng lệnh chèn. Truy vấn như sau.

mysql> insert into CurrentTimeStampDemo values();
Query OK, 1 row affected (0.12 sec)
Let us now display all records from the table

bằng cách sử dụng lệnh chọn. Truy vấn như sau.

mysql> select *from CurrentTimeStampDemo;

Sau đây là kết quả.

+---------------------+
| CreationDate        |
+---------------------+
| 2019-01-02 15:53:03 |
+---------------------+
1 row in set (0.00 sec)

Phương pháp tiếp cận thứ hai

Đây là sử dụng lệnh ALTER. Truy vấn để tạo bảng như sau.

mysql> create table Current_TimestampDemo
-> (
-> Id int
-> );
Query OK, 0 rows affected (0.43 sec)

Đây là câu truy vấn để tự động lưu trữ thời gian tạo. Truy vấn như sau.

mysql> ALTER TABLE Current_TimestampDemo
-> ADD CreationDate datetime DEFAULT CURRENT_TIMESTAMP;
Query OK, 0 rows affected (0.53 sec)
Records: 0 Duplicates: 0 Warnings: 0

Nếu bạn không chuyển giá trị cho cột ‘Ngày tạo’. MySQL lưu trữ giá trị ngày giờ hiện tại cho cột này. Truy vấn như sau.

mysql> insert into Current_TimestampDemo(Id) values(1);
Query OK, 1 row affected (0.19 sec)

Hiển thị các bản ghi của bảng bằng cách sử dụng câu lệnh select. Truy vấn như sau.

mysql> select CreationDate from Current_TimestampDemo;

Sau đây là kết quả.

+---------------------+
| CreationDate        |
+---------------------+
| 2019-01-02 16:25:12 |
+---------------------+
1 row in set (0.00 sec)