mysql에서 마이크로 초를 밀리 초로 반올림하는 가장 좋은 방법은 무엇입니까? 우리는 반올림 어떻게 날짜 시간 (6) 항목 예를 들면마이크로 초에서 밀리 초 반올림 MySQL
,
2016년 12월 1일 12 : 30 : 30 : 01.122456 12 2016년 12월 1일에 01.122
및
2016년 12월 1일 12 : 30 : 30 : 01.122501 12 2016년 12월 1일에 01.123
감사
mysql에서 마이크로 초를 밀리 초로 반올림하는 가장 좋은 방법은 무엇입니까? 우리는 반올림 어떻게 날짜 시간 (6) 항목 예를 들면마이크로 초에서 밀리 초 반올림 MySQL
,
2016년 12월 1일 12 : 30 : 30 : 01.122456 12 2016년 12월 1일에 01.122
및
2016년 12월 1일 12 : 30 : 30 : 01.122501 12 2016년 12월 1일에 01.123
감사
이 쿼리를보십시오 :
을SELECT FROM_UNIXTIME(TO_SECONDS(dt) -
TO_SECONDS('1970-01-01 00:00:00') +
(ROUND(MICROSECOND(dt)/1000, 0)/1000)) AS new_dt
FROM yourTable
여기서 dt
은 datetime
입니다. 설명을 위해 위의 쿼리는 예를 들어 2016-12-01 12:30:01.122456
을 사용하여 분석 할 것입니다.
MICROSECOND(dt) = 122456
ROUND(MICROSECOND(dt)/1000, 0) = 122
는
(ROUND(MICROSECOND(dt)/1000, 0)/1000)) = 0.122
그래서
0.122
라운딩 후 마이크로 범위에있는 정밀도를 포함하지 않는
datetime
에 분수 (초)입니다.
TO_SECONDS(dt) = # seconds EXCLUDING the fractional part
마지막으로, 우리는 0 년 이후 dt
에 (초)을 타고 시대의 시작으로 올해 0 초를 뺍니다. 그로 인해 신기원이 시작된 이래로 초당 숫자는 dt
입니다. 그런 다음 분수 부분을 제외한 초 수를 0.122
에 추가하여 원하는 새 시간 (초)을 얻습니다. datetime
. 마지막으로 을 사용하여이 초 수를 진실한 datetime
으로 변환합니다.
FROM_UNIXTIME 결과가 null 값으로 작동하지 않는 것 같습니다. TO_SECONDS 작동하지만 FROM_UNIXTIME NULL로 설정합니다. 어떤 아이디어? 감사합니다 –
SELECT FROM_UNIXTIME (TO_SECONDS ('2015-12-11 12 : 31 : 04.080000') + (ROUND (MICROSECOND ('2015-12-11 12 : 31 : 04.080000')/1000, 0)/1000)) AS new_dt는 null 값을 나타내지 만 TO_SECONDS ('2015-12-11 12 : 31 : 04.080000') + (ROUND (MICROSECOND ('2015-12-11 12 : 31 : 04.080000')/1000) 0)/1000)은 값을 반환합니다. –
'MICROSECOND ('2015-12-11 12 : 31 : 04.080000')'은 무엇을 제공합니까? –