시간 필드 유형은 datetime과 timestamp를 선택할 수 있습니다. 다음은 둘 사이의 차이점을 보여주는 표입니다.
timestamp는 중국어로 현재 시간인 "timestamp"로 번역됩니다. to Unix yuan 연도의 초 수(1970년 1월 1일 0시 0분 0초)가 4바이트를 차지하며 UTC 형식으로 저장되며 현재 시간대를 자동으로 검색하여 변환합니다. 날짜/시간은 8바이트로 저장되며 시간대 검색은 수행되지 않습니다. 즉, 타임스탬프의 경우 저장 시의 시간대와 검색 시의 시간대가 다르면 꺼내는 데이터도 달라집니다. 날짜/시간의 경우 저장한 내용을 얻게 됩니다. 다음은 몇 가지 일반적인 사례와 선택 제안 사항입니다.
생산시간, 유통기한 등 보관범위에 따라 선택하세요. 날짜시간은 더 넓은 범위를 저장할 수 있으니 날짜시간 선택을 권장합니다.
이 데이터 행의 삽입 시간과 수정 시간을 기록하려면 타임스탬프를 사용하는 것이 좋습니다.
시간대와 관련된 시간 필드에 대한 타임스탬프를 선택하세요.
연도, 날짜, 시간만 표현하고 싶다면 연도, 날짜, 시간을 각각 사용할 수도 있습니다. 각각 1, 3, 3바이트를 차지하며 날짜/시간이 해당 모음입니다.
타임스탬프 필드가 쿼리에 자주 사용되는 경우 MySQL의 내장 함수 FROM_UNIXTIME()
、UNIX_TIMESTAMP()
를 사용하여 날짜 및 타임스탬프 숫자를 앞뒤로 변환할 수도 있습니다. 변환 후 INT UNSIGNED를 사용하여 시간을 저장할 수 있습니다. 지속적이고 공간을 적게 차지하며 인덱스를 사용하면 쿼리 성능을 향상시킬 수 있습니다. 다음은 샘플 테이블 생성문 및 타임스탬프 관련 변환 SQL입니다.
CREATE TABLE `tb_time` ( `increment_id` int unsigned NOT NULL AUTO_INCREMENT COMMENT '自增主键', `col1` datetime NOT NULL DEFAULT '2020-10-01 00:00:00' COMMENT '到期时间', `unix_createtime` int unsigned NOT NULL COMMENT '创建时间戳', `create_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', `update_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '修改时间', PRIMARY KEY (`increment_id`), KEY `idx_unix_createtime` (`unix_createtime`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='time测试表'; # 插入数据 insert into tb_time (unix_createtime,create_time) values (UNIX_TIMESTAMP(now()),now()); # 时间戳数字与时间相互转换 select UNIX_TIMESTAMP('2020-05-06 00:00:00') select FROM_UNIXTIME(1588694400)
위 내용은 mysql의 시간 유형은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!