MySQL Dates

MySQL Dates: Định Nghĩa và Cú Pháp

MySQL là một hệ quản trị cơ sở dữ liệu mã nguồn mở rất phổ biến và được sử dụng rộng rãi. Một trong những yếu tố quan trọng trong cơ sở dữ liệu là việc làm việc với ngày và giờ. MySQL cung cấp các kiểu dữ liệu và hàm để quản lý và thao tác với các giá trị ngày giờ.

Định Nghĩa

Trong MySQL, ngày giờ được quản lý thông qua các kiểu dữ liệu như DATE, TIME, DATETIME, TIMESTAMPYEAR. Mỗi kiểu dữ liệu này có những đặc điểm riêng và được sử dụng trong các tình huống khác nhau để lưu trữ dữ liệu liên quan đến thời gian.

Các Kiểu Dữ Liệu Ngày Giờ trong MySQL

  • DATE: Lưu trữ giá trị ngày theo định dạng 'YYYY-MM-DD'.
  • TIME: Lưu trữ giá trị giờ theo định dạng 'HH:MM:SS'.
  • DATETIME: Kết hợp cả ngày và giờ theo định dạng 'YYYY-MM-DD HH:MM:SS'.
  • TIMESTAMP: Giống như DATETIME nhưng có khả năng tự động cập nhật mỗi khi bản ghi được chỉnh sửa, theo định dạng 'YYYY-MM-DD HH:MM:SS'.
  • YEAR: Lưu trữ năm theo định dạng 'YYYY'.

Cú Pháp

Để tạo và thao tác với các giá trị ngày giờ, chúng ta sử dụng cú pháp sau:

    CREATE TABLE example (
        id INT AUTO_INCREMENT PRIMARY KEY,
        event_date DATE,
        event_time TIME,
        event_datetime DATETIME,
        event_timestamp TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
        event_year YEAR(4)
    );

Ví dụ, để thêm một bản ghi vào bảng trên:

    INSERT INTO example (event_date, event_time, event_datetime, event_year)
    VALUES ('2023-10-01', '12:00:00', '2023-10-01 12:00:00', 2023);

Các Hàm Làm Việc với Ngày Giờ

MySQL cung cấp nhiều hàm hữu ích cho việc thao tác với ngày giờ. Dưới đây là một số hàm phổ biến:

  • CURDATE(): Trả về ngày hiện tại.
  • NOW(): Trả về ngày và giờ hiện tại.
  • DATE_ADD(date, INTERVAL expr unit): Thêm khoảng thời gian cụ thể vào một ngày.
  • DATE_SUB(date, INTERVAL expr unit): Giảm khoảng thời gian cụ thể từ một ngày.
  • DATEDIFF(date1, date2): Tính số ngày giữa hai ngày.

Ví dụ sử dụng các hàm trên:

    SELECT CURDATE() AS current_date;
    SELECT NOW() AS current_datetime;
    SELECT DATE_ADD('2023-10-01', INTERVAL 10 DAY) AS new_date;
    SELECT DATEDIFF('2023-10-01', '2023-09-01') AS days_difference;

Kết Luận

MySQL là một công cụ mạnh mẽ để quản lý và thao tác với dữ liệu ngày giờ. Việc hiểu rõ các kiểu dữ liệu và hàm liên quan đến ngày giờ sẽ giúp bạn tiết kiệm thời gian và nâng cao hiệu suất làm việc với cơ sở dữ liệu. Chúc bạn học tập hiệu quả với MySQL!