MySQL
초 미만의 정밀도를 가진 시간
수색…
비고
분수 초의 데이터 유형으로 컬럼을 선언하려면 MySQL 버전 5.6.4 이상이 필요합니다.
예를 들어, DATETIME(3)
은 타임 스탬프에서 밀리 초 해상도를, TIMESTAMP(6)
는 * nix 스타일 타임 스탬프에서 마이크로 초 해상도를 제공합니다.
읽기 : http://dev.mysql.com/doc/refman/5.7/en/fractional-seconds.html
NOW(3)
는 밀리 초의 정밀도로 MySQL 서버 운영 체제의 현재 시간을 알려줍니다.
* 0.001과 같은 MySQL 내부 분수 산술은 항상 IEEE754 배정도 부동 소수점으로 처리되므로 Sun이 백색 왜성이되기 전에 정확도를 잃을 가능성은 거의 없습니다.
밀리 초 정밀도로 현재 시간 가져 오기
SELECT NOW(3)
속임수를 쓰자.
Javascript 타임 스탬프와 같은 형식으로 현재 시간을 가져옵니다.
Javascript 타임 스탬프는 유서 깊은 UNIX time_t
데이터 형식을 기반으로하며 1970-01-01 00:00:00
UTC 이후의 밀리 초 수를 표시합니다.
이 표현식은 현재 시간을 Javascript 타임 스탬프 정수로 가져옵니다. (현재 time_zone 설정에 관계없이 올바르게 작동합니다.)
ROUND(UNIX_TIMESTAMP(NOW(3)) * 1000.0, 0)
열에 TIMESTAMP
값을 저장 한 경우 UNIX_TIMESTAMP () 함수를 사용하여 정수 Javascript 시간 소인으로 검색 할 수 있습니다.
SELECT ROUND(UNIX_TIMESTAMP(column) * 1000.0, 0)
열에 DATETIME
열이 포함되어 있고 Javascript 시간 소인으로 검색 할 경우 해당 시간 소인은 저장된 시간대의 시간대 오프셋으로 상쇄됩니다.
초 단위 시간을 저장할 열이있는 테이블을 만듭니다.
CREATE TABLE times (
dt DATETIME(3),
ts TIMESTAMP(3)
);
밀리 초 정밀도 날짜 / 시간 필드가있는 테이블을 만듭니다.
INSERT INTO times VALUES (NOW(3), NOW(3));
밀리 초 정밀도의 NOW()
값을 포함하는 행을 테이블에 삽입합니다.
INSERT INTO times VALUES ('2015-01-01 16:34:00.123','2015-01-01 16:34:00.128');
특정 밀리 초 정밀도 값을 삽입합니다.
주의 사용해야 NOW(3)
보다는 NOW()
는 고정밀 시간 값을 삽입하는 기능을 사용하는 경우.
밀리 세컨드 정밀도의 일자 / 시각 치를 텍스트로 변환합니다.
%f
는 DATE_FORMAT () 함수 의 분수 정밀도 형식 지정자입니다.
SELECT DATE_FORMAT(NOW(3), '%Y-%m-%d %H:%i:%s.%f')
분수 마이크로 초와 함께 2016-11-19 09:52:53.248000
과 같은 값을 표시합니다. NOW(3)
을 사용했기 때문에 분수의 마지막 세 자리 숫자는 0입니다.
자바 스크립트 타임 스탬프를 TIMESTAMP 컬럼에 저장하십시오.
Javascript 타임 스탬프 값 (예 : 1478960868932
)이 있으면 다음과 같이 MySQL의 분수 시간 값으로 변환 할 수 있습니다.
FROM_UNIXTIME(1478960868932 * 0.001)
Javascript 타임 스탬프를 MySQL 테이블에 저장하는 것과 같은 종류의 표현식을 사용하는 것은 간단합니다. 이 작업을 수행:
INSERT INTO table (col) VALUES (FROM_UNIXTIME(1478960868932 * 0.001))
(물론, 다른 열을 삽입해야 할 것입니다.)