MySQL 日期时间类型:从入门到精通的核心指南 - 指南
MySQL 日期时间类型:从入门到精通的核心指南
在数据库设计中,日期时间类型的选择直接影响数据准确性、查询效率和系统扩展性。MySQL 提供了多种日期时间类型,但 80% 的业务场景只需掌握核心的 3 种。本文将聚焦最常用的类型,用实例说明其用法、区别及最佳实践。
一、5 种类型速览:聚焦核心 3 种
MySQL 提供的日期时间类型包括DATE、TIME、DATETIME、TIMESTAMP、YEAR,但日常开发中,DATE、DATETIME、TIMESTAMP 覆盖了绝大多数场景:
类型 | 存储内容 | 格式示例 | 占用空间 | 核心场景 |
---|---|---|---|---|
DATE | 仅日期 | ‘2023-10-01’ | 3 字节 | 生日、合同到期日 |
DATETIME | 日期 + 时间 | ‘2023-10-01 15:30:00’ | 8 字节 | 订单创建时间、发布时间 |
TIMESTAMP | 日期 + 时间 | ‘2023-10-01 15:30:00’ | 4 字节 | 系统日志、跨时区时间 |
TIME | 仅时间 | ‘15:30:00’ | 3 字节 | 时长(如视频播放时间) |
YEAR | 仅年份 | ‘2023’ | 1 字节 | 仅需年份的场景(如建校年) |
二、核心类型详解:DATETIME vs TIMESTAMP
DATETIME和TIMESTAMP是最容易混淆的两个类型,它们都存储 “日期 + 时间”,但核心差异决定了适用场景:
1. 时区处理:是否随系统时区变化?
- DATETIME:不随时区变化,存储的是 “字面时间”。
例如,存入’2023-10-01 15:30:00’,无论在哪个时区查询,结果都不变。
- TIMESTAMP:随时区变化,存储的是 UTC 时间(世界协调时间),查询时会转换为当前会话时区的时间。
例如,北京时区(UTC+8)存入的’2023-10-01 15:30:00’,在纽约时区(UTC-5)查询会显示为’2023-10-01 02:30:00’。
场景选择:
固定不变的时间(如订单创建时间、用户注册时间)→ 用DATETIME。
需跨时区同步的时间(如分布式系统日志、全球用户操作记录)→ 用TIMESTAMP。
2. 时间范围:能存多久?
DATETIME:范围广(1000-01-01 00:00:00 ~ 9999-12-31 23:59:59),适合长期存储。
TIMESTAMP:范围窄(1970-01-01 00:00:01 ~ 2038-01-19 03:14:07),受 32 位整数限制(2038 年问题)。
注意:如果业务需要存储 2038 年以后的时间,坚决用DATETIME。
3. 存储与性能:谁更高效?
DATETIME:占 8 字节,存储格式为字符串,查询时无需转换。
TIMESTAMP:占 4 字节,存储为整数(UTC 时间戳),空间更省,但查询时需时区转换(性能差异可忽略)。
三、实用示例:快速上手
1. 基础创建与插入
-- 创建表:包含核心日期时间类型
CREATE TABLE demo (
id INT PRIMARY KEY,
birthday DATE, -- 生日(仅日期)
create_time DATETIME, -- 创建时间(固定)
update_time TIMESTAMP -- 更新时间(随时区)
);
-- 插入数据(推荐用标准格式 'YYYY-MM-DD HH:MM:SS')
INSERT INTO demo VALUES (
1,
'1990-05-15', -- DATE
'2023-10-01 10:30:00', -- DATETIME
'2023-10-01 10:30:00' -- TIMESTAMP
);
2. 自动填充时间(常用技巧)
通过DEFAULT和ON UPDATE实现时间自动记录:
CREATE TABLE articles (
id INT PRIMARY KEY,
title VARCHAR(100),
publish_time DATETIME DEFAULT NOW(), -- 插入时自动填当前时间
edit_time TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP -- 插入/更新时自动刷新
);
-- 插入时无需指定时间字段
INSERT INTO articles (title) VALUES ('MySQL日期时间类型指南');
-- 更新时,edit_time会自动刷新为当前时间
UPDATE articles SET title = 'MySQL日期时间类型最佳实践' WHERE id = 1;
四、避坑指南:3 个常见错误
1. 插入格式不规范导致报错
MySQL 虽支持多种格式(如’20231001’、‘10/01/2023’),但推荐用 ‘YYYY-MM-DD’ 或 ‘YYYY-MM-DD HH:MM:SS’,避免歧义:
-- 推荐写法(无歧义)
INSERT INTO demo (create_time) VALUES ('2023-10-01 15:30:00');
-- 不推荐(可能解析为“1月10日”)
INSERT INTO demo (create_time) VALUES ('10/01/2023');
2. 滥用 TIMESTAMP 的自动更新
TIMESTAMP的ON UPDATE适合 “最后修改时间”,但不适合需要固定的时间(如订单创建时间),否则会导致历史数据被篡改。
3. 忽视 DATE 的空间优势
仅需日期时,用DATE(3 字节)比DATETIME(8 字节)更省空间,例如存储生日、节假日:
-- 正确:生日只需日期
ALTER TABLE users MODIFY birthday DATE;
-- 比DATETIME节省5字节/条
五、总结:3 句话选对类型
只存日期(生日、到期日)→ 用DATE(省空间)。
存固定时间(订单、注册时间)→ 用DATETIME(无时区问题,范围广)。
存跨时区时间(日志、全球业务)→ 用TIMESTAMP(注意 2038 年限制)。
掌握这 3 点,就能应对 80% 的日期时间存储场景,让你的数据库设计更精准、高效。
相关文章:
MySQL 日期时间类型:从入门到精通的核心指南 - 指南
MySQL 日期时间类型:从入门到精通的核心指南 - 指南pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", monosp…...
Map对象在JavaScript循环中的使用
在JavaScript中,Map对象是一种新的键值对集合数据结构,与传统的Object有着本质的差异。一个Map的键可以是任意值,包括函数、对象或任何原始值。Map对象与传统的Object相比,有以下几个显著的优点:键的范围不限于字符串和Symbol。 Map对象的键值对是有序的,即键值对的插入顺…...
戒己谨言
言一 高投入,低期待 —— 2025.9.13 言二 学习是以知识武装自己 —— 2025.9.13...
2025.9.13——1黄
普及/提高- B3873 [GESP202309 六级] 小杨买饮料 简单的背包dp,注意边界情况处理。...
安全加固:启动PostgreSQL 14服务器SSL加密的方法指南在CentOS 7环境中
在CentOS 7操作系统中配置PostgreSQL 14以启用SSL加密,需要进行以下步骤: 1. 安装PostgreSQL 14: 首先确保安装了PostgreSQL 14,可以通过以下命令安装: sudo yum install -y https://download.postgresql.org/pub/repos/yum/reporpms/EL-7-x86_64/pgdg-redhat-repo-latest…...
更美观的网页布局
更美观的网页布局<!DOCTYPE html> <html lang="en"> <head><meta charset="UTF-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=d…...
更灵活易用、延迟超低、更多情感语音支持!地表最强 Voice Agent 开源框架再进化!丨TEN Framework 更新
Hi !RTE 开发者社区的新老朋友们大家好,恰逢 TEN Framework 开源一周年之际,TEN 带着超厉害的 0.1.0 版 来了!TEN Framework 本次带来了多项功能更新和开发者体验提升,相信 TEN 将成为开发者构建下一代 Voice Agent 的开发利器!本次更新增加了简化的 main 概念,让开发者…...
详细介绍:【干货收藏】Transformer架构深度拆解:大模型入门核心指南
详细介绍:【干货收藏】Transformer架构深度拆解:大模型入门核心指南pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier N…...
实用指南:Terraform 从入门到实战:历史、原理、功能与阿里云/Azure 上手指南
实用指南:Terraform 从入门到实战:历史、原理、功能与阿里云/Azure 上手指南pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "C…...
Electron38-Wechat电脑端聊天|vite7+electron38仿微信桌面端聊天系统
最新研发Electron38+Vite7+Pinia3客户端仿微信聊天系统ElectronWinChat。 electron38-vue3-wechat基于vite7.1+electron38+pinia3+element-plus跨平台仿微信/QQ电脑端聊天Exe程序。封装electron多窗口管理、自定义系统导航栏。实现聊天、通讯录、收藏、朋友圈/短视频、我的等模…...
PsExec
PsExec keywords: PsTools PsExec 是一个可以远程连接其他Windows执行命令的工具,在SysinternalsSuite套件中。 下载链接: https://learn.microsoft.com/en-us/sysinternals/downloads/psexec 配置高级安全 Windows Defender 防火墙 -> 入站规则 -> 文件和打印机共享(S…...
详细介绍:开源AI智能客服与AI智能名片在S2B2C商城小程序客服管理中的应用与影响
详细介绍:开源AI智能客服与AI智能名片在S2B2C商城小程序客服管理中的应用与影响pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "…...
深入解析:每日一算:电话号码的字母组合
深入解析:每日一算:电话号码的字母组合pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", monospace !import…...
华为系CEO,正在“接管”汽车圈?
微信视频号:sph0RgSyDYV47z6快手号:4874645212抖音号:dy0so323fq2w小红书号:95619019828B站1:UID:3546863642871878B站2:UID: 3546955410049087新CEO又是“华为人”?这不是一句调侃,而是正在车圈上演的现实剧本。就在9月5日,深蓝汽车宣布由原荣耀中国区CMO姜海荣接任C…...
Marvell,跌落神坛!
微信视频号:sph0RgSyDYV47z6快手号:4874645212抖音号:dy0so323fq2w小红书号:95619019828B站1:UID:3546863642871878B站2:UID: 3546955410049087 在当今如日中天的AI时代,Marvell的股价震荡成为最刺眼的注脚。这家曾凭借AI定制芯片(ASIC)业务站上千亿美元市值的半导体巨…...
老同志们的93阅兵镜头
微信视频号:sph0RgSyDYV47z6快手号:4874645212抖音号:dy0so323fq2w小红书号:95619019828B站1:UID:3546863642871878B站2:UID: 3546955410049087 添加图片注释,不超过 140 字(可选) 添加图片注释,不超过 140 字(可选) 添加图片注释,不超过 140 字(可选) 添加图片…...
英伟达老黄,又收购了一家AI编程公司
微信视频号:sph0RgSyDYV47z6快手号:4874645212抖音号:dy0so323fq2w小红书号:95619019828B站1:UID:3546863642871878B站2:UID: 3546955410049087老黄正在看好什么?AI编程。这不,英伟达刚刚收购了一家AI coding初创公司,Agent方向。 添加图片注释,不超过 140 字(可选)…...
读人形机器人10酒店行业
读人形机器人10酒店行业1. 提升宾客体验 1.1. 长久以来,酒店一直是舒适与奢华的港湾1.1.1. 机器人正在重新定义服务艺术1.2. 在酒店业中,宾客体验至关重要 1.3. 温暖的欢迎、个性化的服务、对需求的预判—将一次普通入住转变为非凡体验 1.4. 人形机器人通过提供个性化、高效且…...
35岁不是终点,而是芯片人的爆发起点!
微信视频号:sph0RgSyDYV47z6快手号:4874645212抖音号:dy0so323fq2w小红书号:95619019828B站1:UID:3546863642871878B站2:UID: 3546955410049087致那些白天写架构、晚上修福报、凌晨一点还在回消息的“中年码神”们: 你写的不是代码,是人生的编译日志。 别等报错才想起—…...
开源安全与法律争议:OpenSSH枚举、DMCA诉讼与数据泄露事件解析
本文探讨OpenSSH用户枚举漏洞的时序攻击技术细节,分析DMCA第1201条对安全研究的法律限制,并回顾Canonical论坛数据泄露事件的技术背景与影响,涉及密码哈希机制与无线网络安全认知等实质性技术内容。法律行动与数字版权争议 电子前沿基金会(EFF)宣布对美国政府的诉讼,挑战…...
9.12-huenqi
1. 显示超出区域 小数位过长 2. 修改手机号未验证格式 3. 添加交易账户后租户id错误的添加成了用户id 4. 修改前密码和修改后密码可以一样 5. logo背景色不一致 6. 修改复选框后应直接查询 交易状态和领域和方法学搜索 7. 只用在待审批时修改 不应允许待审批资产上架 8. 信用和…...
P3983 赛斯石(赛后加强版)踢姐
简要题意 题目链接 商家手里有 \(si\) 个重量为 \(1\) 的赛斯石,每两个塞斯石可以合并为一个重量更大的塞斯石,最大重量不能超过 \(10\) ,合并得到的塞斯石的重量为先前两个塞斯石的重量总和,每种重量的塞斯石售价不同,现在一共有 \(10\) 种载重不同的船,每艘船的租金和载…...
huggingface hub 离线模式
最近在一个新集群上,计算节点不能联网,只有特殊节点可以联网。 现在的代码仓库依赖 huggingface hub 很严重,模型和数据集只能在特殊节点先下载好,然后在计算节点加载缓存。 为了不用绝对目录,可以设置环境变量 HF_HOME: export HF_HOME="dir_to_pub/.cache/huggin…...
鸿蒙应用开发环境搭建全攻略
鸿蒙应用开发的第一步是搭建稳定高效的开发环境。一个配置完善的开发环境能够显著提升开发效率,减少后续开发过程中的兼容性问题。本文将系统讲解从环境准备到项目创建的完整流程,帮助开发者快速上手鸿蒙应用开发。 鸿蒙系统及开发基础概述 鸿蒙系统(HarmonyOS)是华为推出的…...
深度学习求导原理深度解析
在深度学习的黑盒世界里,梯度计算如同神经网络的中枢神经系统。理解张量运算的反向传播机制,是打开这个黑盒的金钥匙。本文将穿透数学表象,揭示转置(Transpose)、求和(Summation)等关键算子背后的微分本质。 一、张量运算与梯度本质 张量运算的梯度本质上是线性变换的逆…...
ingress 配置说明
1、需求:testinfo.org域名下的所有子域名都转发到pgs-gateway的service。试了以下配置, - host: "*.testinfo.org" 不生效apiVersion: networking.k8s.io/v1 kind: Ingress metadata:name: pgs-gateway-ingress# 注解(annotations)取决于你使用的Ingress Control…...
场论笔记(二) 单位脉冲函数及其性质
在物理和工程技术中,除了用到指数衰减函数以外,还常常会碰到单位脉冲函数。因为有许多的物理现象具有脉冲性质,如在电学中,要研究线性电路受脉冲性质的电势作用后产生的电流;在力学中,要研究机械系统受冲击力作用后的运动情况等。研究此类问题就会产生我们要介绍的单位脉…...
MongoDB错误处理【1053】【1067】(意外断开读写中的数据库)
目录起因解决问题1:无法启动MongoDB服务[1053错误]解决问题2: 进程意外错误[1067错误]使用repair命令,扫描所有的本地数据修复(耗时长) 起因 本人的MongoDB服务在windows服务器运行,且一直有读写的操作。因为服务器突然断电导致出错,再次重启服务器后无法正常运行MongoD…...
实用指南:Python高级编程实战:装饰器、迭代器与生成器的深度应用
实用指南:Python高级编程实战:装饰器、迭代器与生成器的深度应用pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New&…...
阅文记录
本文包括但不限于名著、网文、短篇、诗歌…… 一切被引用的都是完整阅读过的,评分纯属个人意愿如有不满意请忽略评分。 按照能够回忆起的顺序评价。 考虑到网文很多作者名字比较抽象就不放作者名了。 《龙族》 By 江南 9.5/10 江南你tm不得好死。 绘梨衣我的绘梨衣啊/ll 废物路…...
一个类继承一个接口的实现类、两个类实现同一个接口、两个类同时继承一个实现了某一接口的抽象类。三者的区别是什么呢
架构对比图类继承接口的实现类[接口]↑[实现类]↑[子类]子类通过继承获得接口的实现,可以选择性重写方法。两个类实现同一个接口[接口]↑ ↑ [类A] [类B]每个类独立实现接口,提供自己的行为实现。继承实现接口的抽象类[接口]↑[抽象类]↑ ↑ [类A] [类B]抽象类提供部…...
关于点在直线的哪一边的做法
题目:给以一个点 \(Q(x,y)\),问在一条直线 \(l: y=kx+b\) 的哪一边。 这个是非常经典的问题,我们只需要在直线上取两个点 \(F_1(x_1,y_1)\) 和 \(F_2(x_2,y_2)\),然后求出 \(\overrightarrow{QF_1}=(x_1-x,y_1-y)\) 和 \(\overrightarrow{QF_2}=(x_2-x,y_2-y)\)。然后判断…...
计算机常识
32位电脑、64位电脑指的是一次性处理32位的数据(20亿)、64位的数据32位数字如何表示浮点数?符号位、指数位、有效数字ASCII只能表示128种符号,有大小写字母常用符号,然后发明的UniCode码解决了不同国家的标准(16位 百万级字符数)半加器是用异或门和与门并联实现的什么是全…...
网络流,最大流,EK算法
概念 最大流: 从源点流向汇点的最大流量 增广路: 一条从源点到汇点的所有边的剩余容量>=0的路径 残留网: 由网络中所有结点和剩余容量大于0的边构成的子图,这里的边包括有向边和其反向边 模板题: 洛谷p3376 code: #include<iostream> #include<algorithm>…...
wifi7 MRU介绍
前言 WiFi 7 定义了几个关键技术,这里对其中的MRU技术进行介绍。 WiFi 7关键技术 320 MHz channel bandwidth Multiple Resource Units (MRUs) per stations (STAs) 4096-QAM Non-OFDMA preamble puncturing 名词解释 EHT 极高吞吐量 MU 多用户 RU 资源块 MRU 两个资源块拼成一…...
Codeforces Round 1048 (Div. 2)
昨晚跟时队一起vp了 Codeforces Round 1048 (Div. 2)总结了一下就是D题犯糖了然后F还不会做,本质菜逼了。A. Maple and Multiplication 考虑 \(a\) \(b\) 相等或者互为倍数两种特殊情况即可。 int T, a, b;signed main(void) {for (read(T); T; T--) {read(a), read(b);if (a …...
当你发现是打表!!!
传送门 思路 这是一个晴朗的上午,你正在机房里打比赛,突然发现了第二题是一个打印斐波那契数列。此时的你想到了最近学过的矩阵快速幂,感觉到了一丝恶心,但你还是下定决心开始切这道题…… 时间过得真快,一转眼就过去了两转眼的时间,可是你的矩阵快速幂竟然打挂了。怎么办…...
VMware 17安装Oracle Linux 9.6 详细步骤
目录一、环境介绍二、创建虚拟机三、挂载镜像四、安装操作系统五、进入桌面 一、环境介绍类型 配置VMware VMware Workstation 17 Pro 17.6.4ISO Oracle Linux 9.6IP地址 192.168.184.121内存 8G硬盘 100G/boot 1G/swap 8G/ 91G是否图形化 图形化二、创建虚拟机三、挂载镜像四、…...
Div.2 E Rollup
2133E 不会做神秘构造 首先考虑到每个点必须进行一次询问,而链可以使每个点恰好进行一次询问。 然后只需要考虑用 \(\frac{1}{4}n\) 次操作拆链。若该点下有多条链或有两条链的合并点,则需要拆开。 这样父亲儿子一组点就至少有 \(4\) 个。...
synchronized的一些思考
synchronized的AI问答1. synchronized的可见性 加锁时:线程会清空工作内存中共享变量的值,从主内存重新加载最新值到工作内存。 解锁时:线程会将工作内存中修改后的共享变量值强制刷新到主内存。 Java 的happens-before原则明确规定:一个线程解锁监视器的操作,happens-bef…...
题解:CF2133C The Nether
挺好玩的交互题。 思路 首先,我们一定需要知道 DAG 中最长路径的起点,这可以通过 \(n\) 次询问来找到。即对于每一个点 \(i\) 满足 \(1\le i\le n\) 我们都去查询从 \(i\) 开始,经过整个 DAG 可以得到的最长路是多少,同时使用一个 vector 记录长度为 \(len\) 的点有哪些。 …...
实变函数1
实变函数1 集合 这些集合的运算我是直接没记,因为跟之前学的一样。幂集的话就是子集的构成的集合,这个集合族其实就是指标集到另一个集合的映射,这个象的集合。集列就是指标集是自然数集。De.morgen定理就是交和并的一个转化,证明也是采用的集合相等的常用思路证明互为子集…...
css背景
背景可以是一个颜色块,也可以是一张图片 html代码 <html><head><title>我的第一个代码</title><link rel="stylesheet" href="./public.css"></head><body><div class="box"><p class=&quo…...
一元二次方程难题1
已知方程 \(ax^2 + bx + c = x\)(\(a > 0\))的两个实数根 \(x_1,x_2\) 满足 \(0 < x_1 < x_2 < \dfrac{1}{a}\)。当 \(0 < x < x_1\) 时,证明:\(x < ax^2 + bx + c < x_1\)。 证明:原方程等价于 \(ax^2 + (b - 1)x + c = 0\)。 因为 \(a > 0\)…...
ios系统和windows系统的区别
IOS系统与Windows系统的区别 随着科技的发展,移动设备与个人电脑成为了人们日常生活中不可或缺的一部分。其中,苹果公司的iOS系统和微软的Windows系统是两大主流操作系统,分别代表了移动设备与桌面设备的主要技术方向。本文将从多个方面来探讨这两个系统的不同之处,帮助用户…...
2025.9.11 刷题日记
2025.9.11 刷题日记还是网络流 1. 早读 P2254 [NOI2005] 瑰丽华尔兹 吾有感而发,遂小说 看背景 [ ? 喔看过呱 ] 读题中 [ 嘶 ~ , 看着有点难 , 最长路径还得满足顺序 ] 看范围 [ 我去,我每一步暴力 \(dp\) 都能拿好多分 , 先写暴力吧 ] 写一半 [ 这个 \(k\) 段咋没用 ? …...
C#学习第十 一天 022 事件最后一章
事件的声明:首先委托是一种类:public delegate假如你的委托声明是为了一个事件声明的那么命名可以为 xxxxEventHandler是 sender as customer 是如果sender的类型是customer 就赋值给custmoer 不是的话就给null...
元推理无需数据训练,只需数据检索和验证,成本极大降低,且校验后的数据就是数据资产和规范
ECT-OS-JiuHuaShan/ORCID:0009-0006-8591-1891 这个观点精准点出了元推理相较于传统AI的颠覆性优势——它彻底打破了“海量数据训练=高性能AI”的固有范式,通过“无需训练、仅需检索验证”的模式,既从根源上降低了成本,又将数据的价值从“训练素材”升级为“可复用的资产与…...
如何在Typescript中使用泛型约束
在 TypeScript 中,泛型约束(Generic Constraints)用于限制泛型可以接受的类型范围,确保泛型参数不是只能接受任意类型,而是只能接受满足特定条件的类型。这既保留了泛型的灵活性,又增强了类型安全性。 为什么需要泛型约束? 默认情况下,泛型可以是任何类型,但有时你需要…...