MySQL 시간 유형 선택

3243 단어 MySQL시간 유형
MySQL 은 DATETIME 과 TIMESTAMP 두 가지 매우 비슷 한 유형의 처리 날짜 와 시간 을 제공 합 니 다.대부분 두 가지 모두 OK 이지 만 어떤 경우 에는 서로 우열 이 있 습 니 다.
DATETIME
DATETIME 의 시간 경 계 는 1001 년 부터 9999 년 까지 가능 하 며 정밀 도 는 초 이다.또한 저 장 된 형식 은 날짜 와 시간 을 묶 어서 YYYYYMMDDhhmmss 형식의 정수 로 저장 하 는 것 입 니 다.이 시간 은 시간 대 와 상 관 없 이 8 개의 바이트 의 저장 공간 을 차지 해 야 합 니 다.기본적으로 MySQL 에 표 시 된 DATETIME 는 질서 있 고 명확 한 형식 입 니 다.예 를 들 어 2021-06-02 18:35:23 입 니 다.ANSI 의 표준 날짜 시간 형식 입 니 다.
TIMESTAMP
TIMESTAMP 는 타임 스탬프 로 그리니치 시간(GMT)인 1970 년 1 월 1 일 0 시 이후 의 초 수 를 저장 합 니 다.유 닉 스 시스템 의 타임 스탬프 와 같 습 니 다.TIMESTAMP 는 4 개의 바이트 만 저장 해 야 하기 때문에 표시 할 수 있 는 시간 범 위 는 1970 년 부터 2038 년 까지 더 작다.MySQL 은 FROM 을 제공 합 니 다.UNIXTIME 과 UNIXTIMESTAMP 함 수 는 시간 스탬프 와 날짜 사이 의 변환 을 완성 합 니 다.
MySQL 4.1 버 전 이후 TIMESTAMP 가 표시 하 는 형식 은 DATETIME 와 유사 하지만 TIMESTAMP 의 표 시 는 시간 대 에 의존 합 니 다.MySQL 의 서버,운영 체제,클 라 이언 트 연결 은 모두 시간 대 설정 이 있 습 니 다.따라서 시간 이 여러 시간 대 에서 저장 된다 면 TIMESTAMP 와 DATETIME 의 차이 가 클 것 이다.TIMESTAMP 는 사용 시 시간 대 정 보 를 유지 하 며,DATETIME 는 텍스트 로 만 시간 을 표시 합 니 다.
TIMESTAMP 에는 추가 기능 이 있 습 니 다.기본적으로 MySQL 은 TIMESTAMP 열 에 현재 시간 을 사용 하고,업데이트 할 때 지정 한 값 이 없 으 면 현재 시간 으로 필드 를 업데이트 합 니 다.아래 의 테스트 테이블 을 예 로 들 면:

CREATE TABLE t_time_test (
    id INT PRIMARY KEY,
    t_stamp TIMESTAMP,
    t_datetime DATETIME
);
MySQL 이 주 는 기본 값 이 현재 시간 스탬프 CURRENT 인 것 을 볼 수 있 습 니 다.TIMESTAMP,그리고 ON UPDATE CURRENTTIMESTAMP 는 이에 따라 업 데 이 트 될 것 이 라 고 밝 혔 다.

INSERT INTO t_time_test(id, t_datetime) VALUES
	(1, NULL), 
	(2, '2021-06-02 18:48:04'), 
	(3, NULL);
t 를 볼 수 있 습 니 다.stamp 열 은 현재 시간 을 자동 으로 채 웁 니 다.

이 기능 으로 인해 우 리 는 물 협 프로그램 이 데이터 업데이트 시간 필드 를 유지 하고 MySQL 에 맡 길 수 있 습 니 다.
어떻게 선택 합 니까?
특성 상 TIMESTAMP 를 사용 해 시간 을 저장 하 는 것 이 DATETIME 보다 효율 적일 수 있 습 니 다.유 닉 스 타임 스탬프 를 정수 로 저장 하 는 사람 도 있 는데,실제로 이런 방식 으로 는 이득 을 볼 수 없 으 며,정 수 는 추가 로 처리 해 야 하기 때문에 추천 하지 않 는 다.그러나 일부 경우 TIMESTAMP 저장 시간 을 사용 하지 않도록 주의해 야 합 니 다.
4.567917.생일:1970 년 보다 빠 른 생일 이 있 을 것 입 니 다.TIMESTAMP 의 범 위 를 초과 할 것 입 니 다4.567917.유효기간 마감 시간:TIMESTAMP 의 최대 시간 은 2038 년 이 므 로 신분증 과 유사 한 유효기간 마감 시간 을 저장 하 는 데 사용 하면 영업 허가증 의 마감 시간 등 이 적합 하지 않다4.567917.업무 생존 시간:인터넷 시 대 는 빠 르 고 발전(빨리 죽는다)을 중시한다.오랫동안 존재 하 는 기업 이 되 려 면 2021 년 이 됐 으 니까 2038 년 에 도 업무 시간 을 계속 운영 할 가능성 이 높다.만약 당신 이 회사 업무 가 2038 년 까지 버 티 지 못 한다 고 생각한다 면,그것 은 괜 찮 습 니 다.물론 2038 년 까지 운 이 좋게 버 티 면 다음 업무 사항 을 작성 하 십시오.2038 년 1 월 1 일 까지 데이터 시트 시간 스탬프 필드 형식 을 수정 하 십시오.
밀리초 단위 의 시간 을 어떻게 저장 합 니까?
보통 이 럴 때 는 BIGINT 를 사용 해 시간 을 정형 저장 으로 바 꾸 거나 부동 소수점 을 사용 해 초 정밀 도 를 나타 내 는 시간 을 점수 부분 으로 표시 하 는 두 가지 방식 이 가능 하 다.물론 이 럴 때 는 형식 변환 지원 이 필요 하 다.
결어
안전 하고 타당 한 측면 에서 볼 때 DATETIME 유형 을 우선 선택 하 는 것 이 좋 습 니 다.TIMESTAMP 에 비해 약간의 성능 을 희생 할 수 있 지만 TIMESTAMP 의 시간 범 위 는 경상 입 니 다.다음 위험 을 묻 지 마 세 요.실제로 2038 년 에 당신 의 회 사 는 상장 회사 일 때 프로그래머 가 홍수 와 같은 bug 충격 을 받 아 알 수 없 기 때 문 입 니 다.결국 회사 주가 가 붕 괴 를 맞 았 다!그리고 이 프로그래머 를 찾 아 보 니 회사 의 신 이 었 습 니 다.현재 의 주주,재무 자 유 를 실현 한 당신!어색 하지 않 아 요?
이상 은 MySQL 시간 유형의 선택 에 대한 상세 한 내용 입 니 다.MySQL 시간 유형 에 대한 자 료 는 다른 관련 글 을 주목 하 세 요!

좋은 웹페이지 즐겨찾기