Dấu thời gian trong MySQL là gì?

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

________số 8_______

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

Làm cách nào để đặt dấu thời gian trong MySQL?

Khi bảng MySQL được tạo, chỉ cần làm điều này. .
chọn DẤU THỜI GIAN làm loại cột của bạn
đặt giá trị Mặc định thành CURRENT_TIMESTAMP
sau đó chỉ cần chèn bất kỳ hàng nào vào bảng mà không cần chèn bất kỳ giá trị nào cho cột thời gian

Dấu thời gian trong cơ sở dữ liệu là gì?

Dấu thời gian là thời gian hiện tại của một sự kiện mà máy tính ghi lại . Thông qua các cơ chế, chẳng hạn như Giao thức thời gian mạng, máy tính duy trì thời gian hiện tại chính xác, được hiệu chỉnh theo từng phần nhỏ của giây. Độ chính xác như vậy giúp các máy tính và ứng dụng nối mạng có thể giao tiếp hiệu quả.

Hàm dấu thời gian trong SQL là gì?

Hàm TIMESTAMP() trả về giá trị ngày giờ dựa trên ngày hoặc giá trị ngày giờ . Ghi chú. Nếu có hai đối số được chỉ định với hàm này, trước tiên, hàm này sẽ thêm đối số thứ hai vào đối số thứ nhất, sau đó trả về một giá trị ngày giờ.

Làm cách nào để hiển thị dấu thời gian trong MySQL?

hàm CURRENT_TIMESTAMP() . MM. định dạng SS' hoặc YYYYMMDDHHMMSS