>  기사  >  데이터 베이스  >  mysql의 시간 유형은 무엇입니까?

mysql의 시간 유형은 무엇입니까?

WBOY
WBOY앞으로
2023-06-01 10:19:051480검색
시간 유형 선택

시간 필드 유형은 datetime과 timestamp를 선택할 수 있습니다. 다음은 둘 사이의 차이점을 보여주는 표입니다.

mysql의 시간 유형은 무엇입니까?

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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
이 기사는 yisu.com에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제