Computer >> 컴퓨터 >  >> 프로그램 작성 >> MySQL

MySQL은 timediff 출력을 일, 시, 분, 초 형식으로 변환합니까?

<시간/>

MySQL이 timediff 출력을 일, 시, 분, 초 형식으로 변환하는 것을 이해하려면 MySQL의 CONCAT()을 사용해야 합니다.

테이블을 만들어 봅시다. 테이블 생성 쿼리는 다음과 같습니다.

mysql> 테이블 생성 convertTimeDifferenceDemo -> ( -> Id int NOT NULL AUTO_INCREMENT, -> StartDate datetime, -> EndDate datetime, -> PRIMARY KEY(Id) -> );Query OK, 영향을 받는 행 0개(0.68초) 

삽입 명령을 사용하여 테이블에 일부 레코드를 삽입하십시오. 레코드를 삽입하는 쿼리는 다음과 같습니다.

mysql> insertTimeDifferenceDemo(StartDate,EndDate) values(date_add(now(),interval -3 hour),date_add(now(),interval 3 hour));Query OK, 1행 영향(0.41초)mysql> convertTimeDifferenceDemo에 삽입(StartDate,EndDate) values(date_add(now(),interval -2 hour),date_add(now(),interval 2 hour));Query OK, 1행 영향(0.27초)mysql> convertTimeDifferenceDemo에 삽입 (StartDate,EndDate) values('2018-04-05 12:30:35','2018-05-17 14:30:50');쿼리 OK, 1행 영향(0.14초)mysql> convertTimeDifferenceDemo( StartDate,EndDate) values('2017-10-11 11:20:30','2017-12-17 15:21:55');쿼리 OK, 1행 영향(0.20초)

select 문을 사용하여 테이블의 모든 레코드를 표시합니다. 쿼리는 다음과 같습니다.

mysql> select *from convertTimeDifferenceDemo;

다음은 출력입니다.

+----+---------------------+------------------- --+| 아이디 | 시작일 | 종료일 |+----+---------------------+-------------------------------- -+| 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행 세트(0.00초)

다음은 timediff 출력을 일, 시, 분, 초 형식으로 가져오는 쿼리입니다.

<미리>mysql> SELECT CONCAT( -> FLOOR(HOUR(TIMEDIFF(StartDate,EndDate)) / 24), ' DAYS ', -> MOD(HOUR(TIMEDIFF(StartDate,EndDate)), 24), ' HOURS', -> MINUTE(TIMEDIFF(StartDate,EndDate)), ' MINUTES ') 설명으로 -> from convertTimeDifferenceDemo;

다음은 출력입니다.

+------------------------------+| 설명 |+------------------------------+| 0일 6시간 0분 || 0일 4시간 0분 || 34일 22시간 59분 || 34 DAYS 22 HOURS 59 MINUTES |+--------------------------------------------+세트에 행 4개, 경고 6개(0.04초)