Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

Cách thêm thời gian vào giá trị ngày giờ trong MySQL

Vấn đề:

Bạn muốn thêm một khoảng thời gian nhất định vào giá trị ngày giờ trong cơ sở dữ liệu MySQL.

Ví dụ:

Cơ sở dữ liệu của chúng tôi có một bảng có tên flight_schedule với dữ liệu trong các cột flight , aircraftarrival_datetime .

Chuyến bay
máy bay doing_datetime
EK10 L1201 2019-04-20 15:15:00
AY12 K2001 2019-03-31 20:10:00
LA105 F205 2019-08-03 11:15:00
LH30 K256 2019-07-01 12:47:00

Đối với mỗi chuyến bay, hãy lấy mã chuyến bay, mã máy bay và ngày giờ đến mới. Để tính toán new_arrival_datetime , chúng tôi sẽ thêm 2 giờ 10 phút vào thời gian hiện tại cho mỗi chuyến đến - đó là số chuyến bay này đã bị hoãn.

Giải pháp:

Chúng tôi sẽ sử dụng ADDTIME() hàm số. Đây là truy vấn bạn sẽ viết:

SELECT flight,
       aircraft,
       ADDTIME(arrival_datetime, ‘2:10’) 
         AS new_arrival_datetime
FROM flight_schedule;

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

Chuyến bay
máy bay new_arrival_datetime
EK10 L1201 2019-04-20 17:25:00
AY12 K2001 2019-03-31 22:20:00
LA105 F205 2019-08-03 13:25:00
LH30 K256 2019-07-01 14:57:00

Thảo luận:

Sử dụng hàm ADDTIME () nếu bạn muốn chọn một ngày giờ mới bằng cách thêm một thời gian nhất định vào giá trị datetime / timestamp / time.

Hàm này có hai đối số. Đối số đầu tiên là ngày / giờ mà chúng tôi đang thêm thời gian; đây có thể là một biểu thức trả về giá trị thời gian / ngày giờ / dấu thời gian hoặc tên của cột thời gian / ngày giờ / dấu thời gian. Trong ví dụ của chúng tôi, chúng tôi sử dụng arrival_datetime , thuộc về ngày giờ loại dữ liệu.

Đối số thứ hai là một chuỗi chứa lượng thời gian cần thêm vào đối số đầu tiên (trong ví dụ của chúng tôi là ‘2:10’ hoặc 2 giờ 10 phút).

Bạn cũng có thể thêm giây phân số và thậm chí cả ngày vào giá trị ngày giờ / thời gian. Truy vấn bên dưới thêm 3 ngày, 1 giờ, 1 phút, 1 giây và 111 giây phân số vào một ngày và giờ:

SELECT ADDTIME('2019-02-05 10:12:11', '3 1:1:1.111'); 

Nó trả về:

2019-02-08 11:13:12.111000

ADDTIME () trả về một chuỗi với thời gian mới. Trong ví dụ của chúng tôi, thời gian đến mới của chuyến bay ‘EK10’ là '2019-04-20 17:25:00' - hai giờ mười phút sau ngày giờ ban đầu của nó là

‘2019-04-20 15:15:00’.   

  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Kết nối với DB từ một Tiện ích mở rộng của Chrome?

  2. MySQL Liệt kê tất cả các thủ tục

  3. Làm cách nào để viết SQL cho một bảng có cùng tên với một từ khóa được bảo vệ trong MySql?

  4. Làm thế nào để xóa hàng mysql sau khi thời gian trôi qua?

  5. Cài đặt Máy chủ Web trong Windows XP với Apache2, PHP5 và MySQL4 - Phần 1