programing

MYSQL DATEFF에만 시간 표시

prostudy 2022. 9. 5. 22:33
반응형

MYSQL DATEFF에만 시간 표시

몇 시간 동안이나 이것 때문에 바빴지만, 효과가 없어요.

SQL

SELECT DATEDIFF(end_time, start_time) as `difference` FROM timeattendance WHERE timeattendance_id = '1484'

start_time =   2012-01-01   12:00:00
end_time =     2012-01-02   13:00:00

차이는 25시간입니다.하지만 출력은 1일입니다.

어떻게 하면 25시간을 출력으로 얻을 수 있을까요?

TIMESTAMPDIFF를 사용하면 어떨까요?

SELECT TIMESTAMPDIFF(HOUR, start_time, end_time) 
           as `difference` FROM timeattendance WHERE timeattendance_id = '1484'

DATIFF는 비교하기 전에 항상 날짜로 캐스팅되므로 DATIFF 대신 TIMEDIFF를 사용하는 것이 좋습니다.TIMEDIFF 실행 후 HOUR 기능으로 시간을 얻을 수 있습니다.

SELECT HOUR(TIMEDIFF(end_time, start_time)) as `difference`;

MySQL 레퍼런스에 기재된 바와 같이DATEDIFF계산에는 며칠밖에 걸리지 않습니다.

두 날짜가 모두 1970년 이후인 경우 타임스탬프를 분할할 수 있습니다.

SELECT ( UNIX_TIMESTAMP("2012-01-02 13:00:00") - 
         UNIX_TIMESTAMP("2012-01-01 12:00:00") ) / 3600 ...

또는 다음과 같이 입력합니다.

SELECT TIMEDIFF ( "2012-01-02 13:00:00", "2012-01-01 12:00:00") / 3600 ... 

TIMEDIFF 및 HOUR 함수를 사용하여 시간을 추출할 수 있습니다.

SELECT HOUR(TIMEDIFF(end_time, start_time)) as `difference` FROM timeattendance WHERE timeattendance_id = '1484'

http://dev.mysql.com/doc/refman/5.5/en/date-and-time-functions.html#function_timediff
http://dev.mysql.com/doc/refman/5.5/en/date-and-time-functions.html#function_hour

언급URL : https://stackoverflow.com/questions/11579946/only-show-hours-in-mysql-datediff

반응형