Ngày và giờ của MySQL thành datetime

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

chuyến bayaircraftarrival_datetimeEK10L12012019-04-20 15. 15. 00AY12K20012019-03-31 20. 10. 00LA105F2052019-08-03 11. 15. 00LH30K2562019-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 điểm hiện tại cho mỗi lần đến – đó là số lượng các chuyến bay này đã bị hoãn

Giải pháp

Chúng ta sẽ sử dụng hàm ADDTIME(). Đâ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 baymáy baynew_arrival_datetimeEK10L12012019-04-20 17. 25. 00AY12K20012019-03-31 22. 20. 00LA105F2052019-08-03 13. 25. 00LH30K2562019-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 thời gian nhất định vào giá trị ngày giờ/dấu thời gian/thời gian

Hàm này nhận hai đối số. Đối số đầu tiên là ngày giờ/thời gian mà chúng tôi đang thêm thời gian; . Trong ví dụ của chúng tôi, chúng tôi sử dụng cột arrival_datetime, thuộc loại dữ liệu ngày giờ

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

Bạn cũng có thể thêm phân số giây 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 ngày và giờ

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

Nó trở lại

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 cho 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ó

Cơ sở dữ liệu của chúng tôi có một bảng tên là travel với dữ liệu trong các cột id, first_name, last_nametimestamp_of_booking

idfirst_namelast_nametimestamp_of_booking1LisaWatson2019-04-20 14. 15. 342TomSmith2019-03-31 20. 10. 143AndyMarkus2019-08-03 10. 05. 454AliceBrown2019-07-01 12. 47. 54

Đối với mỗi khách du lịch, hãy chỉ lấy họ và tên của họ và ngày đặt phòng. (Ghi chú. Cột timestamp_of_booking chứa cả dữ liệu ngày và giờ. )

Giải pháp

Chúng ta sẽ sử dụng hàm DATE(). Đây là truy vấn bạn sẽ viết

SELECT first_name,
       last_name,
       DATE(timestamp_of_booking) 
         AS  date_of_booking
FROM travel;

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

first_namelast_namedate_of_bookingLisaWatson2019-04-20TomSmith2019-03-31AndyMarkus2019-08-03AliceBrown2019-07-01

Thảo luận

Trong MySQL, sử dụng hàm DATE() để truy xuất ngày từ giá trị ngày giờ hoặc dấu thời gian. Hàm này chỉ nhận một đối số – có thể là biểu thức trả về giá trị ngày/ngày giờ/dấu thời gian hoặc tên của cột dấu thời gian/ngày giờ. (Trong ví dụ của chúng tôi, chúng tôi sử dụng một cột có kiểu dữ liệu dấu thời gian. )

Hàm DATE() chỉ trả về thông tin ngày tháng. Trong ví dụ của chúng tôi, nó trả về ‘2019-03-31’ cho ngày đặt phòng của Tom Smith. Lưu ý rằng thông tin thời gian không được bao gồm

Trong hướng dẫn này, bạn đã tìm hiểu về kiểu dữ liệu

CREATE TABLE timestamp_n_datetime ( id INT AUTO_INCREMENT PRIMARY KEY, ts TIMESTAMP, dt DATETIME );

Code language: SQL (Structured Query Language) (sql)
0 của MySQL và một số hàm

CREATE TABLE timestamp_n_datetime ( id INT AUTO_INCREMENT PRIMARY KEY, ts TIMESTAMP, dt DATETIME );

Code language: SQL (Structured Query Language) (sql)
0 hữu ích

Bạn có thể tạo DATETIME từ NGÀY và GIỜ với sự trợ giúp của hàm ADDTIME() trong MySQL. Cú pháp như sau -

SELECT ADDTIME(CONVERT(yourDateColumnName,datetime),yourTimeColumnName) as anyVariableName from yourTableName;

Để hiểu khái niệm trên, chúng ta hãy tạo một bảng. Truy vấn để tạo một bảng như sau -

mysql> create table DateTime
   −> (
   −> DueDate date,
   −> DueTime time
   −> );
Query OK, 0 rows affected (1.19 sec)

Bây giờ bạn có thể chèn ngày và giờ riêng biệt. Truy vấn để chèn như sau -

________số 8_______

Hiển thị tất cả các bản ghi từ bảng với sự trợ giúp của câu lệnh chọn -

mysql> select *from DateTime;

Sau đây là đầu ra -

+------------+----------+
| DueDate    | DueTime  |
+------------+----------+
| 2018-12-11 | 09:59:07 |
+------------+----------+
1 row in set (0.00 sec)

Bây giờ bạn có thể triển khai cú pháp mà chúng ta đã thảo luận lúc đầu để tạo một ngày giờ từ ngày và giờ. Truy vấn như sau -

Làm cách nào để chuyển đổi ngày thành datetime trong MySQL?

Trong SQL Server, bạn có thể sử dụng hàm CONVERT để chuyển đổi một chuỗi có định dạng được chỉ định thành giá trị DATETIME. Trong MySQL, bạn có thể sử dụng hàm STR_TO_DATE nếu bạn cần một định dạng cụ thể hoặc CHUYỂN ĐỔI nếu bạn cần định dạng mặc định .

Làm cách nào để chuyển đổi ngày và giờ thành DẤU THỜI GIAN trong MySQL?

Chúng tôi có thể chuyển đổi ngày và giờ của MySQL thành Dấu thời gian Unix với sự trợ giúp của hàm UNIX_TIMESTAMP() . Sau đây là truy vấn. mysql> CHỌN UNIX_TIMESTAMP(STR_TO_DATE('19 tháng 10 năm 2018 10. 00PM', '%M %d %Y %h. %i%p'));

Sự khác biệt giữa ngày và ngày giờ trong MySQL là gì?

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 . MySQL truy xuất và hiển thị các giá trị NGÀY ở định dạng ' YYYY-MM-DD '. Phạm vi được hỗ trợ là '1000-01-01' đến '9999-12-31'. Loại DATETIME được sử dụng cho các giá trị chứa cả phần ngày và giờ.

Làm cách nào để lấy thời gian từ ngày trong MySQL?

Bạn có thể chạy hàm NOW() để lấy ngày giờ hiện tại trong MySQL. Bạn cũng có thể sử dụng current_timestamp() để lấy ngày giờ mới nhất trong MySQL. Nếu bạn chỉ muốn lấy ngày hiện tại trong MySQL, bạn có thể sử dụng biến hệ thống current_date hoặc các hàm như curdate() hoặc current_date().