Hướng dẫn này giải thích các đặc tính của trường DẤU THỜI GIAN và DẤU THỜI GIAN của MySQL như khởi tạo và cập nhật tự động. Chúng tôi sẽ mô tả cách sử dụng của chúng với sự trợ giúp của các ví dụ đơn giản
1.
2.
3.
4.
Bây giờ chúng ta hãy đi qua từng phần một
DẤU THỜI GIAN của MySQL
MySQL TIMESTAMP là một kiểu dữ liệu tạm thời có chứa hỗn hợp ngày và giờ. Nó dài chính xác 19 ký tự. Cấu trúc của trường DẤU THỜI GIAN như sau
cú pháp
# MySQL Timestamp YYYY-MM-DD HH:MM:SS
Giá trị DẤU THỜI GIAN hiển thị theo UTC theo mặc định. Nó bắt đầu từ '1970-01-01 00. 00. 01’ đến ‘2038-01-19 03. 14. 07’ UTC
Nếu bạn cung cấp giá trị DẤU THỜI GIAN trong truy vấn chèn MySQL, thì nó sẽ lưu giá trị ở định dạng UTC. Tuy nhiên, bất cứ khi nào bạn truy vấn cùng một trường, thì MySQL sẽ chuyển đổi nó theo cài đặt múi giờ của kết nối. Xin lưu ý rằng hành vi này không áp dụng cho các loại dữ liệu tạm thời khác, chẳng hạn như DATETIME. Nó chỉ hợp lệ cho các giá trị DẤU THỜI GIAN
Ngoài ra, múi giờ cơ sở dữ liệu MySQL lấy chế độ mặc định của nó từ cài đặt kết nối. Tuy nhiên, bạn có thể sửa đổi tương tự thông qua thay đổi cấu hình
Nó cũng ngụ ý rằng mọi giá trị DẤU THỜI GIAN được chèn qua ứng dụng khách từ múi giờ khác sẽ hiển thị ở định dạng múi giờ kết nối. Vì vậy, nếu bạn giữ nguyên múi giờ, thì nó đảm bảo tìm nạp giá trị chính xác mà bạn đã lưu trữ
Ví dụ về DẤU THỜI GIAN của MySQL
Hãy xem cách sử dụng giá trị TIMESTAMP trong truy vấn MySQL
Ví dụ múi giờ
Để chứng minh, trước tiên hãy tạo một bảng có tên là Mẫu với sample_ts là trường DẤU THỜI GIAN
CREATE TABLE Sample [ sample_id int NOT NULL, sample_name VARCHAR[20], sample_ts TIMESTAMP ];
Tiếp theo, bạn phải đặt múi giờ thành '+00. 00’ UTC bằng cách phát lệnh SET time_zone
SET TIME_ZONE = '+00:00';
Sau này, bạn phải chèn một vài hàng trong khi chỉ định giá trị DẤU THỜI GIAN. Xem bên dưới
INSERT INTO Sample [ sample_id, sample_name, sample_ts ] VALUES [1, 'First Sample', '2016-01-01 00:00:01'], [2, 'Second Sample', '2017-01-01 00:00:01'], [3, 'Third Sample', '2018-01-01 00:00:01'], [4, 'Fourth Sample', '2019-01-01 00:00:01'];
Bây giờ, hãy xem nội dung bảng bằng cách chạy câu lệnh SELECT
SELECT * FROM Sample;
Đầu ra của nó như sau
1 First Sample 2016-01-01 00:00:01 2 Second Sample 2017-01-01 00:00:01 3 Third Sample 2018-01-01 00:00:01 4 Fourth Sample 2019-01-01 00:00:01
Cuối cùng, thay đổi múi giờ của phiên, chạy lại CHỌN và quan sát giá trị bạn nhận được từ cơ sở dữ liệu MySQL
SET time_zone ='+04:00'; SELECT * FROM Sample;
Lần này, bạn sẽ nhận được kết quả hiển thị giá trị dấu thời gian khác
1 First Sample 2016-01-01 04:00:01 2 Second Sample 2017-01-01 04:00:01 3 Third Sample 2018-01-01 04:00:01 4 Fourth Sample 2019-01-01 04:00:01
Tự động khởi tạo và cập nhật trường DẤU THỜI GIAN
Hãy bắt đầu cách MySQL tự động khởi tạo và cập nhật cột TIMESTAMP bằng một ví dụ
Đây là câu lệnh MySQL để tạo một bảng có tên Articles
Trong bảng trên, có hai trường DẤU THỜI GIAN
- dateCreated – Nó đại diện cho ngày mà tác giả viết bài báo lần đầu tiên
- datePublished – Ngày giờ tác giả cập nhật bài viết
Vì ngày tạo là tĩnh nên chúng ta cần cung cấp một giá trị thích hợp cho nó. Tuy nhiên, trường khác sẽ thay đổi theo thời gian hiện tại, vì vậy chúng tôi đã sử dụng CURRENT_TIMESTAMP làm mặc định
Hãy xác thực việc khởi tạo tự động của trường datePublished. Dưới đây là lệnh chèn để chạy
INSERT INTO Artciles [ articleTitle, dateCreated ] VALUES ['How to Use MySQL Insert Statement', '2019-07-21 00:00:01'], ['How to Use MySQL Select Statement', '2019-07-14 00:00:01'], ['How to Use MySQL Update Statement', '2019-07-07 00:00:01'], ['How to Use MySQL Delete Statement', '2019-07-01 00:00:01'];
Bạn có thể thấy rằng chúng tôi chỉ cung cấp tiêu đề bài viết và ngày tạo. MySQL sẽ lưu trữ các giá trị mặc định cho các trường còn lại
CREATE TABLE Sample [ sample_id int NOT NULL, sample_name VARCHAR[20], sample_ts TIMESTAMP ];0
Đầu ra của CHỌN là
CREATE TABLE Sample [ sample_id int NOT NULL, sample_name VARCHAR[20], sample_ts TIMESTAMP ];1
Xin lưu ý rằng bạn cũng có thể sử dụng tính năng khởi tạo và cập nhật tự động với kiểu DATETIME trong MySQL 5. 6. 5 và các phiên bản mới hơn. Ngoài ra, bạn có thể áp dụng các MACRO bên dưới trên nhiều cột
- DEFAULT_CURRENT_TIMESTAMP và
- CẬP NHẬT DẤU THỜI GIAN HIỆN TẠI
Chúng tôi hy vọng rằng sau khi kết thúc hướng dẫn này, bạn sẽ cảm thấy thoải mái khi sử dụng DẤU THỜI GIAN của MySQL. Tuy nhiên, bạn có thể thực hành thêm với các ví dụ để tự tin hơn