当前位置: 首页 > article >正文

mysql不同种类时间字段的区别

MySQL所有的时间字段

date
time
datetime
timestamp
year

我们一个一个说

测试SQL表

CREATE TABLE `mysql_time_test` (
  `id` int NOT NULL AUTO_INCREMENT,
  `date_test` date DEFAULT NULL,
  `time_test` time DEFAULT NULL,
  `datetime_test` datetime DEFAULT NULL ON UPDATE CURRENT_TIMESTAMP,
  `timestamp_test` timestamp NULL DEFAULT NULL ON UPDATE CURRENT_TIMESTAMP,
  `year_test` year DEFAULT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_bin;

date

MySQL的date类型的默认格式是yyyy-mm-dd

insert into mysql_time_test(date_test) VALUES(curdate());

在这里插入图片描述
在这里插入图片描述

在 MySQL 8 中,时间类型字段用于存储日期和时间信息,主要包括 DATETIMEDATETIMETIMESTAMPYEAR。以下是它们的详细区别及原理:

1. DATE

  • 格式: YYYY-MM-DD
  • 范围: 1000-01-019999-12-31
  • 存储空间: 3 字节
  • 用途: 仅存储日期,不包含时间部分。
  • 原理: 存储从 1000-01-019999-12-31 的日期,精确到天。

2. TIME

  • 格式: HH:MM:SSHHH:MM:SS
  • 范围: -838:59:59838:59:59
  • 存储空间: 3 字节
  • 用途: 存储时间或时间间隔,可以超过 24 小时。
  • 原理: 存储时间值,支持负值表示时间间隔。

3. DATETIME

  • 格式: YYYY-MM-DD HH:MM:SS
  • 范围: 1000-01-01 00:00:009999-12-31 23:59:59
  • 存储空间: 5 字节(MySQL 5.6.4 之前为 8 字节)
  • 用途: 存储日期和时间,不依赖时区。
  • 原理: 存储从 1000-01-01 00:00:009999-12-31 23:59:59 的日期和时间,精确到秒。

4. TIMESTAMP

  • 格式: YYYY-MM-DD HH:MM:SS
  • 范围: 1970-01-01 00:00:01 UTC 到 2038-01-19 03:14:07 UTC
  • 存储空间: 4 字节
  • 用途: 存储日期和时间,依赖时区,通常用于记录时间戳。
  • 原理: 存储从 1970-01-01 00:00:01 UTC 到 2038-01-19 03:14:07 UTC 的时间戳,精确到秒。存储时转换为 UTC,检索时再转换回当前时区。

5. YEAR

  • 格式: YYYY
  • 范围: 19012155,或 0000(表示无效年份)
  • 存储空间: 1 字节
  • 用途: 存储年份。
  • 原理: 存储 2 位或 4 位年份,4 位年份范围为 19012155,2 位年份范围为 7069(表示 19702069)。

区别总结

  • 范围: DATEDATETIME 的范围较大,TIMESTAMP 的范围较小。
  • 时区: TIMESTAMP 依赖时区,DATETIME 不依赖。
  • 存储空间: TIMESTAMP 占用空间最小,DATETIME 占用空间较大。
  • 用途: DATE 用于日期,TIME 用于时间或间隔,DATETIMETIMESTAMP 用于日期和时间,YEAR 用于年份。

选择建议

  • 如果需要存储时间戳且依赖时区,选择 TIMESTAMP
  • 如果需要存储日期和时间且不依赖时区,选择 DATETIME
  • 如果仅需存储日期,选择 DATE
  • 如果仅需存储时间或时间间隔,选择 TIME
  • 如果仅需存储年份,选择 YEAR

这些时间类型的选择应根据具体需求来决定,以确保数据的准确性和存储效率。


http://www.kler.cn/a/532066.html

相关文章:

  • 20-30 五子棋游戏
  • Docker Compose的使用
  • DeepSeek-R1:通过强化学习激励大型语言模型(LLMs)的推理能力
  • 深度学习之“缺失数据处理”
  • 智能小区物业管理系统推动数字化转型与提升用户居住体验
  • Selenium 使用指南:从入门到精通
  • Linux ifstat 命令使用详解
  • qt-Quick笔记之Dark Mode And Light Mode In Application
  • 应对现代电子商务的网络威胁—全面安全战略
  • (脚本学习)BUU18 [CISCN2019 华北赛区 Day2 Web1]Hack World1
  • 自制小动画
  • 基于开源2 + 1链动模式AI智能名片S2B2C商城小程序的内容创作与传播效能探究
  • ubuntu 网络管理--wpa_supplicant、udhcpc
  • Block Blaster Online:免费解谜游戏的乐趣
  • 如何不更新application.yml而更新spring的配置
  • 解读“大语言模型(LLM)安全性测评基准”
  • 蓝桥杯备考:高精度算法之乘法
  • Maven 概述与安装配置
  • 网络安全学习 day4
  • 物业管理平台系统促进智能社区管理与服务模式的创新与发展
  • 站在JavaScript的视角去看,HTML的DOM和GLTF的Json数据。
  • < 自用文儿 > 下载 MaxMind GeoIP Databases 对攻击的 IP 做 地理分析
  • 深度学习篇---深度学习框架图像预处理各部分组件
  • Love Tester:探索爱情的深度与维度
  • [特殊字符]const在函数前后的作用详解(附经典案例)
  • OSPF基础2