MySQL giây đến giờ, phút

Để hiểu MySQL chuyển đổi đầu ra timediff sang định dạng ngày, giờ, phút và giây, bạn cần sử dụng CONCAT[] từ MySQL

Hãy để chúng tôi tạo một bảng. Truy vấn để tạo bảng như sau

mysql> create table convertTimeDifferenceDemo
   -> [
   -> Id int NOT NULL AUTO_INCREMENT,
   -> StartDate datetime,
   -> EndDate datetime,
   -> PRIMARY KEY[Id]
   -> ];
Query OK, 0 rows affected [0.68 sec]

Chèn một số bản ghi vào bảng bằng lệnh chèn. Truy vấn để chèn bản ghi như sau

mysql> insert into convertTimeDifferenceDemo[StartDate,EndDate] values[date_add[now[],interval -3 hour],date_add[now[],interval 3 hour]];
Query OK, 1 row affected [0.41 sec]
mysql> insert into convertTimeDifferenceDemo[StartDate,EndDate] values[date_add[now[],interval -2 hour],date_add[now[],interval 2 hour]];
Query OK, 1 row affected [0.27 sec]
mysql> insert into convertTimeDifferenceDemo[StartDate,EndDate] values['2018-04-05 12:30:35','2018-05-17 14:30:50'];
Query OK, 1 row affected [0.14 sec]
mysql> insert into convertTimeDifferenceDemo[StartDate,EndDate] values['2017-10-11 11:20:30','2017-12-17 15:21:55'];
Query OK, 1 row affected [0.20 sec]

Hiển thị tất cả các bản ghi từ bảng bằng cách sử dụng câu lệnh chọn. Truy vấn như sau

mysql> select *from convertTimeDifferenceDemo;

Sau đây là đầu ra

+----+---------------------+---------------------+
| Id | StartDate           | EndDate             |
+----+---------------------+---------------------+
|  1 | 2019-01-28 20:55:33 | 2019-01-29 02:55:33 |
|  2 | 2019-01-28 21:57:42 | 2019-01-29 01:57:42 |
|  3 | 2018-04-05 12:30:35 | 2018-05-17 14:30:50 |
|  4 | 2017-10-11 11:20:30 | 2017-12-17 15:21:55 |
+----+---------------------+---------------------+
4 rows in set [0.00 sec]

Đây là truy vấn để nhận đầu ra timediff sang định dạng ngày, giờ, phút và giây

mysql> SELECT CONCAT[
   -> FLOOR[HOUR[TIMEDIFF[StartDate,EndDate]] / 24], ' DAYS ',
   -> MOD[HOUR[TIMEDIFF[StartDate,EndDate]], 24], ' HOURS ',
   -> MINUTE[TIMEDIFF[StartDate,EndDate]], ' MINUTES '] AS DESCRIPTION
   -> FROM convertTimeDifferenceDemo;

Sau đây là đầu ra

+------------------------------+
| DESCRIPTION                  |
+------------------------------+
| 0 DAYS 6 HOURS 0 MINUTES     |
| 0 DAYS 4 HOURS 0 MINUTES     |
| 34 DAYS 22 HOURS 59 MINUTES  |
| 34 DAYS 22 HOURS 59 MINUTES  |
+------------------------------+
4 rows in set, 6 warnings [0.04 sec]

Trong hướng dẫn này, chúng ta sẽ tìm hiểu về các hàm

MINUTE[value]

Code language: SQL [Structured Query Language] [sql]
3,

MINUTE[value]

Code language: SQL [Structured Query Language] [sql]
4 và

MINUTE[value]

Code language: SQL [Structured Query Language] [sql]
5 của MySQL. Các hàm

MINUTE[value]

Code language: SQL [Structured Query Language] [sql]
3,

MINUTE[value]

Code language: SQL [Structured Query Language] [sql]
4 và

MINUTE[value]

Code language: SQL [Structured Query Language] [sql]
5 của MySQL được sử dụng rộng rãi trong khi truy xuất các giá trị giờ, phút và giây tương ứng từ một giá trị thời gian/ngày giờ. Tôi sẽ khuyến khích bạn thực hành các ví dụ khác nhau về nó

Trong hướng dẫn này, chúng ta sẽ tìm hiểu về hàm MySQL

mysql> select *from convertTimeDifferenceDemo;
3. Giả sử bạn là một huấn luyện viên điền kinh và bạn đang tính thời gian chạy của các vận động viên đang chạy một cuộc đua. Đồng hồ bấm giờ của bạn chỉ tính bằng giây [hãy coi như bạn đang sử dụng một số đồng hồ bấm giờ cổ xưa]. Bây giờ, bạn muốn lưu trữ các giá trị thời gian này ở định dạng HH. MM. SS trong một bảng

Bạn làm điều đó như thế nào? . Một cách khác là sử dụng hàm MySQL

mysql> select *from convertTimeDifferenceDemo;
3

Hàm MySQL

mysql> select *from convertTimeDifferenceDemo;
3 được sử dụng để trả về giá trị thời gian ở định dạng HH. MM. SS từ số giây được chỉ định. Nói cách khác, nó chuyển đổi một giá trị chỉ trong vài giây sang định dạng HH. MM. SS. Chúng ta hãy xem cú pháp và sau đó đi sâu vào một số ví dụ

Cú pháp hàm MySQL SEC_TO_TIME[]

mysql> insert into convertTimeDifferenceDemo[StartDate,EndDate] values[date_add[now[],interval -3 hour],date_add[now[],interval 3 hour]];
Query OK, 1 row affected [0.41 sec]
mysql> insert into convertTimeDifferenceDemo[StartDate,EndDate] values[date_add[now[],interval -2 hour],date_add[now[],interval 2 hour]];
Query OK, 1 row affected [0.27 sec]
mysql> insert into convertTimeDifferenceDemo[StartDate,EndDate] values['2018-04-05 12:30:35','2018-05-17 14:30:50'];
Query OK, 1 row affected [0.14 sec]
mysql> insert into convertTimeDifferenceDemo[StartDate,EndDate] values['2017-10-11 11:20:30','2017-12-17 15:21:55'];
Query OK, 1 row affected [0.20 sec]
2

Trong đó, 'giây' là số giây. Giá trị này có thể là cả hai – tích cực và tiêu cực

Ví dụ về hàm SEC_TO_TIME[] của MySQL

Hãy để chúng tôi bắt đầu bằng cách xem xét một vài ví dụ cơ bản. Hãy để chúng tôi chuyển đổi số giây sau thành giá trị thời gian – 1 và 156. Chúng tôi sẽ sử dụng câu lệnh

mysql> insert into convertTimeDifferenceDemo[StartDate,EndDate] values[date_add[now[],interval -3 hour],date_add[now[],interval 3 hour]];
Query OK, 1 row affected [0.41 sec]
mysql> insert into convertTimeDifferenceDemo[StartDate,EndDate] values[date_add[now[],interval -2 hour],date_add[now[],interval 2 hour]];
Query OK, 1 row affected [0.27 sec]
mysql> insert into convertTimeDifferenceDemo[StartDate,EndDate] values['2018-04-05 12:30:35','2018-05-17 14:30:50'];
Query OK, 1 row affected [0.14 sec]
mysql> insert into convertTimeDifferenceDemo[StartDate,EndDate] values['2017-10-11 11:20:30','2017-12-17 15:21:55'];
Query OK, 1 row affected [0.20 sec]
31 và bí danh có tên là 'Thời gian' để làm cho đầu ra của chúng tôi có thể đọc được. Truy vấn là -

mysql> insert into convertTimeDifferenceDemo[StartDate,EndDate] values[date_add[now[],interval -3 hour],date_add[now[],interval 3 hour]];
Query OK, 1 row affected [0.41 sec]
mysql> insert into convertTimeDifferenceDemo[StartDate,EndDate] values[date_add[now[],interval -2 hour],date_add[now[],interval 2 hour]];
Query OK, 1 row affected [0.27 sec]
mysql> insert into convertTimeDifferenceDemo[StartDate,EndDate] values['2018-04-05 12:30:35','2018-05-17 14:30:50'];
Query OK, 1 row affected [0.14 sec]
mysql> insert into convertTimeDifferenceDemo[StartDate,EndDate] values['2017-10-11 11:20:30','2017-12-17 15:21:55'];
Query OK, 1 row affected [0.20 sec]
3

Và đầu ra là -

Vì vậy,

mysql> select *from convertTimeDifferenceDemo;
3 bắt đầu đếm số giây từ thời điểm 00. 00. 00. Bây giờ, chúng ta hãy xem một vài ví dụ nơi chúng ta chuyển giá trị giây lớn hơn. Hãy xem xét các truy vấn dưới đây -

mysql> insert into convertTimeDifferenceDemo[StartDate,EndDate] values[date_add[now[],interval -3 hour],date_add[now[],interval 3 hour]];
Query OK, 1 row affected [0.41 sec]
mysql> insert into convertTimeDifferenceDemo[StartDate,EndDate] values[date_add[now[],interval -2 hour],date_add[now[],interval 2 hour]];
Query OK, 1 row affected [0.27 sec]
mysql> insert into convertTimeDifferenceDemo[StartDate,EndDate] values['2018-04-05 12:30:35','2018-05-17 14:30:50'];
Query OK, 1 row affected [0.14 sec]
mysql> insert into convertTimeDifferenceDemo[StartDate,EndDate] values['2017-10-11 11:20:30','2017-12-17 15:21:55'];
Query OK, 1 row affected [0.20 sec]
5

Và đầu ra là -

Hạn chế của kiểu dữ liệu thời gian

Một điều bạn nên biết khi làm việc với hàm

mysql> select *from convertTimeDifferenceDemo;
3 là kiểu dữ liệu thời gian có giới hạn. Loại dữ liệu thời gian được giới hạn trong phạm vi từ -838. 59. 59 đến 838. 59. 59. Vì vậy, nếu bạn vượt qua một giá trị giây lớn, đủ để vượt qua phạm vi này thì bạn sẽ nhận được cảnh báo. Hãy cho chúng tôi xem hành vi này bằng cách sử dụng hai truy vấn bên dưới.  

mysql> insert into convertTimeDifferenceDemo[StartDate,EndDate] values[date_add[now[],interval -3 hour],date_add[now[],interval 3 hour]];
Query OK, 1 row affected [0.41 sec]
mysql> insert into convertTimeDifferenceDemo[StartDate,EndDate] values[date_add[now[],interval -2 hour],date_add[now[],interval 2 hour]];
Query OK, 1 row affected [0.27 sec]
mysql> insert into convertTimeDifferenceDemo[StartDate,EndDate] values['2018-04-05 12:30:35','2018-05-17 14:30:50'];
Query OK, 1 row affected [0.14 sec]
mysql> insert into convertTimeDifferenceDemo[StartDate,EndDate] values['2017-10-11 11:20:30','2017-12-17 15:21:55'];
Query OK, 1 row affected [0.20 sec]
6

Và đầu ra là -

Như bạn có thể thấy, bạn nhận được một cảnh báo trong kết quả. Tuy nhiên, bạn cũng nhận được một giá trị. Lưu ý rằng giá trị này giống nhau cho cả hai truy vấn của chúng tôi. Điều này có thể khá sai lệch. Nếu chúng tôi vượt qua số giây đủ lớn để thoát ra khỏi phạm vi tôi đã chỉ định ở trên, thì MySQL sẽ ngừng đếm ở giá trị thời gian 838. 59. 59 ngay cả khi kết quả sẽ lớn hơn thế.  

MySQL SEC_TO_TIME[] với giá trị giây âm

Chúng ta cũng có thể chuyển giá trị giây âm cho hàm

mysql> select *from convertTimeDifferenceDemo;
3.
mysql> insert into convertTimeDifferenceDemo[StartDate,EndDate] values[date_add[now[],interval -3 hour],date_add[now[],interval 3 hour]];
Query OK, 1 row affected [0.41 sec]
mysql> insert into convertTimeDifferenceDemo[StartDate,EndDate] values[date_add[now[],interval -2 hour],date_add[now[],interval 2 hour]];
Query OK, 1 row affected [0.27 sec]
mysql> insert into convertTimeDifferenceDemo[StartDate,EndDate] values['2018-04-05 12:30:35','2018-05-17 14:30:50'];
Query OK, 1 row affected [0.14 sec]
mysql> insert into convertTimeDifferenceDemo[StartDate,EndDate] values['2017-10-11 11:20:30','2017-12-17 15:21:55'];
Query OK, 1 row affected [0.20 sec]
35 sau đó sẽ bắt đầu đếm ngược và cung cấp cho bạn giá trị thời gian âm. Hãy để chúng tôi xem một ví dụ về điều này. Xem xét truy vấn dưới đây

mysql> insert into convertTimeDifferenceDemo[StartDate,EndDate] values[date_add[now[],interval -3 hour],date_add[now[],interval 3 hour]];
Query OK, 1 row affected [0.41 sec]
mysql> insert into convertTimeDifferenceDemo[StartDate,EndDate] values[date_add[now[],interval -2 hour],date_add[now[],interval 2 hour]];
Query OK, 1 row affected [0.27 sec]
mysql> insert into convertTimeDifferenceDemo[StartDate,EndDate] values['2018-04-05 12:30:35','2018-05-17 14:30:50'];
Query OK, 1 row affected [0.14 sec]
mysql> insert into convertTimeDifferenceDemo[StartDate,EndDate] values['2017-10-11 11:20:30','2017-12-17 15:21:55'];
Query OK, 1 row affected [0.20 sec]
8

Và đầu ra là -

MySQL SEC_TO_TIME[] trong ngữ cảnh số

Chúng ta hãy xem một ví dụ về

mysql> select *from convertTimeDifferenceDemo;
3 trong ngữ cảnh số. Xem xét truy vấn dưới đây

mysql> insert into convertTimeDifferenceDemo[StartDate,EndDate] values[date_add[now[],interval -3 hour],date_add[now[],interval 3 hour]];
Query OK, 1 row affected [0.41 sec]
mysql> insert into convertTimeDifferenceDemo[StartDate,EndDate] values[date_add[now[],interval -2 hour],date_add[now[],interval 2 hour]];
Query OK, 1 row affected [0.27 sec]
mysql> insert into convertTimeDifferenceDemo[StartDate,EndDate] values['2018-04-05 12:30:35','2018-05-17 14:30:50'];
Query OK, 1 row affected [0.14 sec]
mysql> insert into convertTimeDifferenceDemo[StartDate,EndDate] values['2017-10-11 11:20:30','2017-12-17 15:21:55'];
Query OK, 1 row affected [0.20 sec]
9

Và đầu ra là -

Làm việc với bảng

Hãy để chúng tôi xem một ví dụ với các bảng. Xem xét bảng Runner bên dưới

Á quân bảng

C1 và C2 là các trạm kiểm soát trong một cuộc đua. Giả sử bạn là một huấn luyện viên điền kinh và bạn đang tính thời gian cho các vận động viên của mình khi họ vượt qua các điểm kiểm tra C1 và C2 trong một cuộc đua. Hãy để chúng tôi viết một truy vấn sẽ điền vào các cột C1 và C2 một giá trị thời gian cho người chạy với các giá trị giây sau –

  • Jim Humber vượt qua trạm kiểm soát C1 ở giây thứ 500 và C2 ở giây thứ 2010
  • Denise Torvalds vượt qua trạm kiểm soát C1 sau 650 giây và C2 sau 2510 giây
  • Johanna Huxley vượt qua trạm kiểm soát C1 ở giây 885 và C2 ở giây 3000

Chúng tôi sẽ sử dụng câu lệnh

mysql> insert into convertTimeDifferenceDemo[StartDate,EndDate] values[date_add[now[],interval -3 hour],date_add[now[],interval 3 hour]];
Query OK, 1 row affected [0.41 sec]
mysql> insert into convertTimeDifferenceDemo[StartDate,EndDate] values[date_add[now[],interval -2 hour],date_add[now[],interval 2 hour]];
Query OK, 1 row affected [0.27 sec]
mysql> insert into convertTimeDifferenceDemo[StartDate,EndDate] values['2018-04-05 12:30:35','2018-05-17 14:30:50'];
Query OK, 1 row affected [0.14 sec]
mysql> insert into convertTimeDifferenceDemo[StartDate,EndDate] values['2017-10-11 11:20:30','2017-12-17 15:21:55'];
Query OK, 1 row affected [0.20 sec]
37 và mệnh đề
mysql> insert into convertTimeDifferenceDemo[StartDate,EndDate] values[date_add[now[],interval -3 hour],date_add[now[],interval 3 hour]];
Query OK, 1 row affected [0.41 sec]
mysql> insert into convertTimeDifferenceDemo[StartDate,EndDate] values[date_add[now[],interval -2 hour],date_add[now[],interval 2 hour]];
Query OK, 1 row affected [0.27 sec]
mysql> insert into convertTimeDifferenceDemo[StartDate,EndDate] values['2018-04-05 12:30:35','2018-05-17 14:30:50'];
Query OK, 1 row affected [0.14 sec]
mysql> insert into convertTimeDifferenceDemo[StartDate,EndDate] values['2017-10-11 11:20:30','2017-12-17 15:21:55'];
Query OK, 1 row affected [0.20 sec]
38 cho điều này. Hãy xem xét các truy vấn dưới đây

mysql> select *from convertTimeDifferenceDemo;
2

Và đầu ra là -

Phần kết luận

MySQL

mysql> select *from convertTimeDifferenceDemo;
3 là một chức năng rất hữu ích cho phép bạn chuyển đổi giây thành giá trị thời gian. Tôi sẽ khuyến khích bạn thực hành nhiều ví dụ hơn về chức năng này

Làm cách nào để chuyển đổi giây thành thời gian trong MySQL?

Hàm SEC_TO_TIME[] trả về giá trị thời gian [ở định dạng HH. MM. SS] dựa trên số giây được chỉ định

Làm cách nào để chuyển đổi giây thành ngày giờ trong SQL?

Bạn chỉ có thể sử dụng một trong các tùy chọn CHUYỂN ĐỔI tiêu chuẩn. .
KHAI BÁO @seconds INT
CHỌN @giây = 500
CHỌN CHUYỂN ĐỔI[VARCHAR, DATEADD[giây,@giây,0],108]

Làm cách nào để chuyển đổi int thành thời gian trong MySQL?

Để chuyển đổi số INT trong vài phút thành TIME trong MySQL, bạn có thể sử dụng hàm SEC_TO_TIME[] . Chèn một số bản ghi vào bảng bằng lệnh chèn. Hiển thị tất cả các bản ghi từ bảng bằng cách sử dụng câu lệnh chọn.

Chủ Đề