Cách thêm ngày trong MySQL

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()

Ví 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

Cách thêm ngày trong MySQL

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

Cách thêm ngày trong MySQL

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 gốc -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

Phần 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ơ sở dữ liệu của chúng tôi có một bảng tên là trip với dữ liệu trong các cột id, citystart_date

idcitystart_date1Chicago2019-06-222Houston2019-07-153Dallas2019-08-304Austin2019-09-23

Hãy thêm hai ngày vào ngày bắt đầu và nhận các thành phố của chuyến đi với ngày bắt đầu mới

Dung dịch

Chúng tôi sẽ sử dụng chức năng DATE_ADD(). Đây là truy vấn bạn sẽ viết

SELECT city,
             DATE_ADD(start_date, INTERVAL 2 DAY) 
               AS  later_date
FROM trip;

Đây là kết quả của truy vấn

citystart_dateChicago2019-06-24Houston2019-07-17Dallas2019-09-01Austin2019-09-25

Thảo luận

Sử dụng hàm DATE_ADD() nếu bạn muốn tăng một ngày nhất định trong cơ sở dữ liệu MySQL. Trong ví dụ của chúng tôi, chúng tôi đã tăng mỗi ngày bắt đầu thêm hai ngày

Hàm này nhận hai đối số. Đối số đầu tiên là ngày hoặc giờ bạn muốn thay đổi. Đối số này có thể là tên của cột ngày/ngày giờ hoặc một biểu thức trả về giá trị ngày/giờ. Trong ví dụ của chúng tôi, chúng tôi đã sử dụng cột start_date, thuộc loại dữ liệu ngày

Đối số thứ hai là toán tử INTERVAL, theo sau là một số nguyên cho biết số lượng đơn vị (trong ví dụ của chúng tôi là 2) và đơn vị ngày/giờ để thêm (trong ví dụ của chúng tôi là DAY). Bạn có thể tìm hiểu thêm về các đơn vị khoảng trong phần tài liệu MySQL

DATE_ADD() trả về một giá trị ngày tháng hoặc thời gian mới. Trong ví dụ của chúng tôi, chuyến đi đến Houston có ngày bắt đầu mới. ‘2019-07-17’

Làm cách nào để chèn một ngày trong MySQL?

MySQL đi kèm với các kiểu dữ liệu sau để lưu trữ ngày hoặc giá trị ngày/giờ trong cơ sở dữ liệu. .
NGÀY - định dạng YYYY-MM-DD
DATETIME - định dạng. YYYY-MM-DD HH. MI. SS
DẤU THỜI GIAN - định dạng. YYYY-MM-DD HH. MI. SS
NĂM - định dạng YYYY hoặc YY

Làm cách nào để thêm 1 ngày vào một ngày trong MySQL?

Sử dụng hàm DATE_ADD() nếu bạn muốn tăng một ngày nhất định trong cơ sở dữ liệu MySQL.

Làm cách nào để thêm khoảng thời gian trong MySQL?

Hàm DATE_ADD() của MySQL .
Thêm 10 ngày vào một ngày và trả lại ngày. SELECT DATE_ADD("15-06-2017", THỜI GIAN 10 NGÀY);.
Thêm 15 phút vào một ngày và trả lại ngày. CHỌN NGÀY_ADD("15-06-2017 09. 34. 21", THỜI GIAN 15 PHÚT);.
Trừ 3 giờ cho một ngày và trả lại ngày. .
Trừ 2 tháng cho một ngày và trả lại ngày