Trong hướng dẫn này, chúng ta sẽ xem xét cách chèn bản ghi ngày và giờ vào cơ sở dữ liệu. Điều này có thể bao gồm thời điểm chúng tôi thêm một bản ghi cụ thể vào cơ sở dữ liệu
Chức năng MySQL now[]
Phương pháp đơn giản nhất để chèn ngày giờ hiện tại vào MySQL là sử dụng hàm now[]. Khi bạn gọi hàm, nó sẽ trả về ngày và giờ hiện tại theo múi giờ được định cấu hình của hệ thống dưới dạng chuỗi
Giá trị được trả về từ hàm now[] là YYYY-MM-DD cho ngày và HH-MM-SS-UU cho bản ghi thời gian
Một trường hợp sử dụng đơn giản của hàm now[] là
CHỌN ngay bây giờ[];
Khi chúng tôi chạy truy vấn trên, chúng tôi sẽ nhận được ngày và giờ chính xác khi truy vấn bắt đầu thực thi
2021-07-26 22. 08. 15
Cần lưu ý rằng hàm now[] trả về ngày và giờ khi truy vấn bắt đầu thực thi. Nếu bạn muốn biết chính xác ngày giờ hoàn thành truy vấn, bạn có thể sử dụng hàm sysdate[]
Thí dụ
select sysdate[];
+---------------------+
| sysdate[] |
+---------------------+
. 2021-07-26 22. 12. 19.
+---------------------+
Điều này trả về ngày và giờ hệ thống hiện tại khi truy vấn thực thi
MySQL current_date[]
Nếu bạn chỉ muốn lấy ngày hiện tại mà không bao gồm thời gian, bạn có thể sử dụng hàm curdate[]
Hàm này cũng trả về ngày ở dạng YYYY-MM-DD dưới dạng chuỗi. Ví dụ
SELECT curdate[];
+-----------+
. giám sát [].
+-----------+
. 2021-07-26.
+-----------+
MySQL curtime[] Chức năng
Tương tự, nếu bạn muốn lấy thời gian hiện tại mà không bao gồm ngày tháng, bạn có thể sử dụng hàm curtime[]
Đây là một ví dụ
SELECT curtime[];
+-----------+
. thời gian [].
+-----------+
. 22. 16. 43.
+-----------+
Ngày và giờ hiện tại phụ thuộc vào múi giờ đã đặt. Để thay đổi múi giờ trong MySQL, hãy sử dụng truy vấn SET như
SET time_zone = ‘múi giờ’;
Truy vấn trên sẽ thay đổi múi giờ của bạn thành tùy chọn ưa thích của bạn
Đang tải các múi giờ của MySQL
Trong một số trường hợp, khi bạn thực hiện lệnh trên, đặc biệt là trên các thiết bị Windows, bạn sẽ gặp lỗi “Múi giờ không xác định hoặc không chính xác”.
Nguyên nhân chính của việc này là hệ thống cơ sở không được phổ biến với cơ sở dữ liệu múi giờ
Để khắc phục điều này, bạn có thể tải cơ sở dữ liệu múi giờ như được mô tả trong các bước sau
THẬN TRỌNG. KHÔNG sử dụng phương pháp này trên hệ thống đi kèm với tệp zoneinfo được tải. Ví dụ: trong Linux, các tệp zoneinfo được tải trong thư mục /usr/share/zoneinfo
Bước 1. Mở trình duyệt của bạn và điều hướng đến trang tải xuống múi giờ MySQL
https. // nhà phát triển. mysql. com/tải xuống/múi giờ. html
Bước 2. Tiếp theo, tải xuống tệp lưu trữ múi giờ cho phiên bản MySQL của bạn. Nếu bạn đang sử dụng MySQL 5. 6 trở xuống, hãy tải xuống tiêu chuẩn Posix vì Windows tuân thủ POSIX
Bước 3. Khi bạn đã tải xuống gói múi giờ, hãy mở phiên lệnh và điều hướng đến vị trí của tệp múi giờ
CDC. \users\linuxhint\Desktop
Bước 4. Cuối cùng, sử dụng lệnh bên dưới để tải tệp múi giờ
mysql_tzinfo_to_sql múi giờ_2021a_posix_sql. khóa kéo. mysql -u root -p
Thay thế tệp zip múi giờ bằng tên của tệp đã tải xuống
Nếu bạn hoàn thành lệnh trên mà vẫn gặp lỗi, hãy giải nén kho lưu trữ ở trên để lấy timezones_posix. tập tin sql
Tiếp theo, sử dụng MySQL để tải các múi giờ bằng lệnh
mysql -u root -p -D mysql < timezone_posix. sql
Hai bước trên sẽ giải quyết lỗi và cho phép bạn sửa đổi múi giờ cho máy chủ MySQL
Ví dụ: để đặt múi giờ thành New York, hãy sử dụng lệnh
SET time_zone = 'Mỹ/New_York';
Sau khi thực hiện thành công, bây giờ bạn có thể gọi hàm now[] để lấy thời gian dựa trên múi giờ đã đặt của bạn
chọn ngay[];
+---------------------+
| now[] |
+---------------------+
. 2021-07-26 15. 48. 49.
+---------------------+
GHI CHÚ. Có nhiều tùy chọn hơn để định cấu hình múi giờ của MySQL so với tùy chọn được thảo luận trong hướng dẫn này. Kiểm tra các tài liệu để tìm hiểu thêm
Sự kết luận
Hướng dẫn này thảo luận về cách chèn ngày hiện tại, thời gian hiện tại và ngày giờ hiện tại vào cơ sở dữ liệu MySQL
Có nhiều kiểu dữ liệu khác nhau được hỗ trợ trong MySQL. Trong số đó đôi khi chúng ta cần lấy kiểu dữ liệu NGÀY để lưu trữ giá trị dữ liệu. Loại NGÀY được sử dụng cho các giá trị có phần ngày nhưng không có phần thời gian. Nó hiển thị các giá trị NGÀY ở định dạng 'YYYY-MM-DD'. Chúng tôi có thể lưu trữ bất kỳ giá trị ngày nào trong phạm vi đã cho từ '1000-01-01' đến '9999-12-31'.