×

Lấy ngày UTC hiện tại với UTC_DATE() trong MySQL

MySQL là một hệ quản trị cơ sở dữ liệu phổ biến và mạnh mẽ, được sử dụng rộng rãi trong nhiều ứng dụng web và phần mềm. Một trong những tính năng quan trọng của MySQL là khả năng quản lý và xử lý các giá trị ngày giờ. Trong nhiều trường hợp, chúng ta cần lấy thời điểm hiện tại theo định dạng Universal Time Coordinated (UTC), và để làm điều này, MySQL cung cấp hàm UTC_DATE().

Hàm UTC_DATE() trả về ngày hiện tại theo chuẩn UTC mà không bao gồm phần thời gian. Điều này rất hữu ích khi bạn muốn lưu trữ hoặc so sánh ngày hiện tại trong bảng cơ sở dữ liệu mà không cần phải xử lý phần giờ, phút, và giây.

Ưu điểm của việc sử dụng UTC

  1. Quản lý nhiều múi giờ: Khi làm việc với ứng dụng quốc tế, UTC giúp đảm bảo rằng ngày giờ được nhất quán trên toàn cầu.
  2. Đồng bộ dữ liệu: Dễ dàng đồng bộ dữ liệu giữa các hệ thống khi sử dụng cùng một múi giờ chuẩn.
  3. Dễ dàng so sánh và tính toán: Sử dụng UTC giúp tránh những phức tạp do sự thay đổi múi giờ theo mùa, giúp việc so sánh và tính toán thời gian trở nên đơn giản.

Cách sử dụng UTC_DATE()

Cú pháp cơ bản:

SELECT UTC_DATE();

Khi thực thi câu lệnh này, MySQL sẽ trả về ngày hiện tại ở định dạng 'YYYY-MM-DD'. Ví dụ, nếu ngày hiện tại theo UTC là 15 tháng 11, 2023, thì kết quả trả về sẽ là '2023-11-15'.

Ứng dụng trong thực tiễn

1. Chèn ngày hiện tại vào bảng:

Bạn cần chèn ngày hiện tại vào bảng khi thêm một bản ghi mới. Ví dụ:

INSERT INTO users (username, created_date)
VALUES ('tranvan', UTC_DATE());

Trong ví dụ này, trường created_date sẽ được lưu với giá trị ngày hiện tại theo chuẩn UTC.

2. Lọc dữ liệu theo ngày hiện tại:

Bạn có thể sử dụng UTC_DATE() để lọc các bản ghi theo ngày hiện tại. Ví dụ, giả sử bạn có một bảng orders với trường order_date, và bạn muốn lấy các đơn hàng được đặt trong ngày hôm nay theo giờ UTC:

SELECT * FROM orders
WHERE order_date = UTC_DATE();

Khác biệt giữa UTC_DATE()UTC_TIMESTAMP()

Trong MySQL, bên cạnh UTC_DATE(), còn có hàm UTC_TIMESTAMP(). Dưới đây là sự khác nhau cơ bản giữa chúng:

  • UTC_DATE() chỉ trả về phần ngày (không bao gồm thời gian).
  • UTC_TIMESTAMP() trả về cả ngày và thời gian hiện tại theo chuẩn UTC.

Ví dụ sử dụng UTC_TIMESTAMP():

SELECT UTC_TIMESTAMP();

Nếu thời gian hiện tại là 15 giờ 30 phút 45 giây vào ngày 15 tháng 11, 2023, kết quả trả về sẽ là '2023-11-15 15:30:45'.

Kết luận

Việc sử dụng UTC_DATE() trong MySQL giúp xử lý các giá trị ngày hiện tại theo chuẩn UTC một cách hiệu quả và nhất quán. Nó là một công cụ hữu ích cho các ứng dụng yêu cầu khả năng làm việc với nhiều múi giờ khác nhau hoặc cần tính toán thời gian chuẩn xác.

Vì vậy, nếu bạn đang phát triển ứng dụng với dữ liệu ngày tháng, việc tìm hiểu và sử dụng các hàm ngày giờ như UTC_DATE() sẽ giúp bạn quản lý dữ liệu một cách dễ dàng và hiệu quả hơn.

Comments