MySQL : 두 타임 스탬프의 차이를 초 단위로 얻는 방법
몇 초 만에 두 타임 스탬프의 차이를 알려주는 MySQL에서 쿼리를 만들 수있는 방법이 있습니까, 아니면 PHP에서해야합니까? 그렇다면 어떻게해야합니까?
TIMEDIFF()
및 TIME_TO_SEC()
기능을 다음과 같이 사용할 수 있습니다 .
SELECT TIME_TO_SEC(TIMEDIFF('2010-08-20 12:01:00', '2010-08-20 12:00:00')) diff;
+------+
| diff |
+------+
| 60 |
+------+
1 row in set (0.00 sec)
다른 답변에서 제안한 @Amber로UNIX_TIMESTAMP()
함수를 사용할 수도 있습니다 .
SELECT UNIX_TIMESTAMP('2010-08-20 12:01:00') -
UNIX_TIMESTAMP('2010-08-20 12:00:00') diff;
+------+
| diff |
+------+
| 60 |
+------+
1 row in set (0.00 sec)
TIMESTAMP
데이터 유형을 사용하는 경우 값이 이미 에포크 ( Source ) 이후의 초 수를 나타내는 정수로 저장되어 UNIX_TIMESTAMP()
있기 때문에 솔루션이 약간 더 빠를 것이라고 생각합니다 . 문서 인용 :TIMESTAMP
열에서
UNIX_TIMESTAMP()
가 사용 되면TIMESTAMP
함수는 암시 적 "문자열에서 Unix- 타임 스탬프"로 변환하지 않고 내부 타임 스탬프 값을 직접 반환합니다.있다는 사실을 양지
TIMEDIFF()
의 반환 데이터 형식TIME
.TIME
값의 범위는 '-838 : 59 : 59'에서 '838 : 59 : 59'(대략 34.96 일)입니다.
"TIMESTAMPDIFF"는 어떻습니까?
SELECT TIMESTAMPDIFF(SECOND,'2009-05-18','2009-07-29') from `post_statistics`
https://dev.mysql.com/doc/refman/5.7/en/date-and-time-functions.html#function_timestampdiff
UNIX_TIMESTAMP(ts1) - UNIX_TIMESTAMP(ts2)
부호없는 차이를 원하면 ABS()
식 주위에 추가하십시오 .
또는을 사용 TIMEDIFF(ts1, ts2)
하여 시간 결과를를 사용하여 초로 변환 할 수 있습니다 TIME_TO_SEC()
.
점을 유의 TIMEDIFF()
(가) 때 솔루션에만 작동 datetimes
됩니다 미만 삼십오일 간격이! 데이터 유형을 TIMEDIFF()
반환하고 TIMETIME
의 최대 값은 838 : 59 : 59 시간 (= 34,96 일)입니다.
'programing' 카테고리의 다른 글
왜 사람들은 C ++에서 __ (이중 밑줄)을 많이 사용합니까? (0) | 2020.09.13 |
---|---|
1에서 100 사이의 고유 한 난수 생성 (0) | 2020.09.13 |
열을 삭제하지 않고 NOT NULL에서 NULL로 변경할 수 있습니까? (0) | 2020.09.13 |
PostgreSQL 테이블에서 열의 데이터 유형을 변경하는 방법은 무엇입니까? (0) | 2020.09.12 |
http 범위 요청 세션 샘플 (0) | 2020.09.12 |