몇 초 만에 두 타임 스탬프의 차이를 알려주는 MySQL에서 쿼리를 만들 수있는 방법이 있습니까? 아니면 PHP에서해야합니까? 그렇다면 어떻게해야합니까?
몇 초 만에 두 타임 스탬프의 차이를 알려주는 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
데이터 유형을 사용하는 경우 값이 이미 epoch ( 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
str_to_date(date_column, '%m/%d/%Y')
경우 형식을 수정해야하는 열의 TIMESTAMPDIFF 함수 내에서 다음을 수행하십시오 .
TIME_TO_SEC
에 maxes 밖으로 3020399
이 반환하는 반면 올바른 값.
unit
합니다SECOND
. 매개 변수를로 설정하면 됩니다 .