TIMESTAMP 和DATETIME 的区别

news2024/11/23 18:38:22

DATETIME类型

  • 存储范围DATETIME类型可以存储从1000-01-01 00:00:009999-12-31 23:59:59的日期和时间值,精度可以达到微秒级别。
  • 时区处理DATETIME类型不与特定时区关联。它直接存储你提供的日期和时间值,不包含任何时区信息。这意味着存储和检索时,值是不变的,非常适合不需要时区转换的场景。
  • 存储空间:通常情况下,DATETIME类型占用8字节的存储空间。

TIMESTAMP类型

  • 存储范围TIMESTAMP类型可以存储从1970-01-01 00:00:01 UTC到2038-01-19 03:14:07 UTC的日期和时间值。注意,TIMESTAMP有一个固定的时间范围限制,且存在“2038年问题”,即在2038年后无法存储新的日期。
  • 时区处理:与DATETIME不同,TIMESTAMP是时区敏感的。当数据被插入或更新时,MySQL会根据系统的时区设置将客户端的时间转换为UTC(协调世界时)进行存储。当数据被检索时,这个过程会被逆向执行,将UTC时间转换回当前MySQL服务器的时区时间。这意味着,如果你在不同的时区查看同一个TIMESTAMP字段,显示的时间可能会有所不同。
  • 自动更新TIMESTAMP列可以被设置为在行被创建或更新时自动更新到当前时间(使用ON UPDATE CURRENT_TIMESTAMP)。这是它常被用来记录记录创建或最后修改时间的原因。
  • 存储空间TIMESTAMP类型通常占用4字节的存储空间(MySQL 5.6.4及以后版本可以存储到微秒,此时占用5字节或更多,具体取决于精度设置)。

应用场景

  • DATETIME适用于需要宽泛日期范围且不需要时区转换的场景,如记录历史事件或维护长期的审计日志。
  • TIMESTAMP则更适合需要考虑时区差异,或者利用其自动更新特性的场景,比如记录数据的创建和修改时间。

两者区别

特性DATETIMETIMESTAMP
存储范围从1000-01-01 00:00:00到9999-12-31 23:59:59从1970-01-01 00:00:01到2038-01-19 03:14:07
时区敏感性不敏感,直接存储指定的时间敏感,存储时转换为UTC,检索时转换回系统时区
自动更新不提供自动更新到当前时间的功能可以设置ON UPDATE CURRENT_TIMESTAMP自动更新
存储空间8字节通常为4字节(MySQL 5.6.4后,带微秒为5字节或以上)
默认值NULL当前时间(CURRENT_TIMESTAMP),除非明确设置
适用场景需要宽泛日期范围,不关心时区转换需要考虑时区差异,记录创建/修改时间戳

注意事项

https://dev.mysql.com/doc/refman/8.0/en/data-type-defaults.html

explicit_defaults_for_timestamp 是一个MySQL的系统变量,它的引入是为了改变MySQL中对TIMESTAMP列的默认行为,特别是在MySQL 5.6版本中。这个变量的主要作用和影响如下:

背景

在MySQL早期版本中,TIMESTAMP列有一些特殊的默认行为:

  1. 如果一个表定义中只有一个TIMESTAMP列,则该列自动设置为当前时间戳,无论是插入新行还是更新行。
  2. 如果定义了两个TIMESTAMP列,其中一个可以指定为ON UPDATE CURRENT_TIMESTAMP,另一个则默认为插入时设置为当前时间戳。

explicit_defaults_for_timestamp 的作用

explicit_defaults_for_timestamp 系统变量设置为 ON 时:

  • 上述TIMESTAMP列的默认自动行为被取消,意味着所有的TIMESTAMP列都需要明确指定是否需要自动填充当前时间戳,包括在插入和更新时。
  • 你需要显式地使用 DEFAULT CURRENT_TIMESTAMP 和 ON UPDATE CURRENT_TIMESTAMP 来指定自动填充的行为。

配置与影响

  • 配置方式:可以通过在MySQL配置文件(如my.cnf或my.ini)中的 [mysqld] 部分设置 explicit_defaults_for_timestamp=ON,或者在启动MySQL服务时通过命令行参数 --explicit-defaults-for-timestamp=ON 来启用此特性。
  • 影响:这一改变增强了对TIMESTAMP列的控制,使得数据库管理员和开发者可以更加精确地控制哪些列需要自动更新,避免了过去因默认行为可能引起的混淆或不符合预期的数据处理问题。

版本注意事项

  • 从MySQL 5.6.6开始引入了这个系统变量,但是默认值为 OFF,意味着老的行为仍然保持。
  • MySQL 8.0中,explicit_defaults_for_timestamp 已经被移除,因为8.0版本中TIMESTAMP列的默认行为已经永久性地变为需要显式指定,这实际上默认启用了之前通过该变量开启的功能。

选择哪种类型取决于具体的应用需求,包括日期范围、时区处理需求以及是否需要自动更新特性。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1869305.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

SSM超市管理系统-计算机毕业设计源码10428

目 录 摘要 1 绪论 1.1 研究意义 1.2国内外研究现状 1.3论文结构与章节安排 2 超市管理系统系统分析 2.1 可行性分析 2.2 系统流程分析 2.2.1 数据流程 3.3.2 业务流程 2.3 系统功能分析 2.3.1 功能性分析 2.3.2 非功能性分析 2.4 系统用例分析 2.5本章小结 3 …

Arduino平台软硬件原理及使用——SR04超声波传感器的使用

文章目录: 一、超声波传感器工作原理 二、SR04超声波库的使用 三、SR04超声波传感器在Arduino中的使用 一、超声波传感器工作原理 如上图所示:HCSR04超声波传感器拥有4个针脚,除了VCC接正极、GND接负极外,还有两个引脚“Trig”及“…

vue-主题切换

themeName/index.vue页面: <template><div class"theme-view"><div click"themeClick" class"theme-btn">切换颜色</div><br>{{themeName white ? 白色 : 深色}}主题页面</div> </template><sc…

pytorch统计学分布

1、pytorch统计学函数 import torcha torch.rand(2,2) print(a) print(torch.sum(a, dim0)) print(torch.mean(a, dim0)) print(torch.prod(a, dim0))print(torch.argmax(a, dim0)) print(torch.argmin(a, dim0)) print(torch.std(a)) print(torch.var(a)) print(torch.median…

UE4 Unlua的快速使用

目录 Unlua的使用前言下载Unlua插件插件安装快速入门语法汇总模块导入多行字符串官方静态方法调用蓝图方法调用重载蓝图中的方法主动调用被重载的蓝图方法输入绑定动态绑定Lua脚本委托容器使用 延迟与协程的使用C 调用Lua 静态导出自定义类型到Lua使用网络UMG资源释放自定义加载…

秋招季的策略与行动指南:提前布局,高效备战,精准出击

6月即将进入尾声&#xff0c;一年一度的秋季招聘季正在热火进行中。对于即将毕业的学生和寻求职业发展的职场人士来说&#xff0c;秋招是一个不容错过的黄金时期。 秋招的序幕通常在6月至9月间拉开&#xff0c;名企们纷纷开启网申的大门。在此期间&#xff0c;求职备战是一个系…

SaaS客户裂变:如何构建合作伙伴的双向沟通桥梁

在SaaS行业中&#xff0c;客户裂变不仅是增长的关键&#xff0c;更要求与合作伙伴之间建立稳固的沟通桥梁。如何构建合作伙伴双向沟通的桥梁&#xff0c;真正做到理解对方的价值需求&#xff0c;实现长期合作共赢呢&#xff1f; 一、明确价值共享 首先&#xff0c;确保双方明…

git 初基本使用-----------笔记(结合idea)

Git命令 下载git 打开Git官网&#xff08;git-scm.com&#xff09;&#xff0c;根据自己电脑的操作系统选择相应的Git版本&#xff0c;点击“Download”。 基本的git命令使用 可以在项目文件下右击“Git Bash Here” &#xff0c;也可以命令终端下cd到指定目录执行初始化命令…

Windows环境本地部署开源在线演示文稿应用PPTist并实现远程访问

&#x1f49d;&#x1f49d;&#x1f49d;欢迎来到我的博客&#xff0c;很高兴能够在这里和您见面&#xff01;希望您在这里可以感受到一份轻松愉快的氛围&#xff0c;不仅可以获得有趣的内容和知识&#xff0c;也可以畅所欲言、分享您的想法和见解。 推荐:kwan 的首页,持续学…

Shopee本土店选品有什么技巧?EasyBoss ERP为你整理了6个高效选品的方法!

电商圈有句话叫&#xff1a;七分靠选品&#xff0c;三分靠运营&#xff0c;选品对了&#xff0c;事半功倍&#xff0c;选品错了&#xff0c;功亏一篑&#xff01; 很多卖家都会为选品发愁&#xff0c;特别对于Shopee本土店卖家来说&#xff0c;要囤货到海外仓&#xff0c;如果…

六西格玛黑带培训:技能进阶与薪资增长的助推器

在快速变化的职场环境中&#xff0c;不断寻求自我提升与突破成为了每一位职场人士的重要课题。六西格玛黑带培训作为质量管理领域的精英认证&#xff0c;它不仅代表着个人技能的提升&#xff0c;更意味着职业发展道路上的新机遇和薪资水平的飞跃。 六西格玛黑带培训&#xff…

KubeSphere容器平台本地部署并实现无公网IP远程监控集群

文章目录 前言1. 部署KubeSphere2. 本地测试访问3. Linux 安装Cpolar4. 配置KubeSphere公网访问地址5. 公网远程访问KubeSphere6. 固定KubeSphere公网地址 前言 本文主要介绍如何在Linux CentOS搭建KubeSphere并结合Cpolar内网穿透工具&#xff0c;实现远程访问&#xff0c;根…

Spring框架FactoryBean接口的作用和应用

一、FactoryBean源码解读 FactoryBean<T> 是 Spring 框架 beans.factory包中的一个接口&#xff0c;从字面意思可以理解为工厂bean&#xff0c;它是干什么的&#xff0c;类名上的泛型又是指什么&#xff0c;有什么作用&#xff1f; 注释看不懂没关系&#xff0c;先看一…

敏源-数字高精度温度探头可替代传统PT100/1000

传统模拟温度探头成本高、功耗高、数据采集不方便&#xff0c;而由工采网代理的敏源0.1℃数字温度探头&#xff0c;可替代传统的PT100/1000或升级热敏电阻探头&#xff1b;可应用于冷链、仓储、医疗、工业等低温/室温/高温高精度温度采集场景。 PT100温度传感器需要复杂的采集电…

BMS绝缘检测方案

目前已有绝缘检测方案大都类似&#xff0c;我想分享一下&#xff0c;同时也想提出一个问题&#xff1a;在总压1500V的时候&#xff0c;检测100K以下的阻值有什么很好的方案吗&#xff1f;希望有懂行的人能给予帮助&#xff0c;万分感谢&#xff01;&#xff01;&#xff01; 我…

电路与数字逻辑期末复习重点整理!!

1.带无关项的卡诺图 2.置数法设计N进制电路 计数器&#xff1a;具有记忆输入脉冲个数功能的电路称为计数器。 按照各个触发器状态更新情况的不同可分为&#xff1a; 同步计数器&#xff1a;各触发器受同一时钟脉冲─输入计数脉冲控制&#xff0c;同步更新状态。异步计数器&a…

AI大模型安全挑战和安全要求解读

引言 随着人工智能技术的飞速发展&#xff0c;大模型技术以其卓越的性能和广泛的应用前景&#xff0c;正在重塑人工智能领域的新格局。然而&#xff0c;任何技术都有两面性&#xff0c;大模型在带来前所未有便利的同时&#xff0c;也引发了深刻的安全和伦理挑战。 大模型&…

PointMamba: A Simple State Space Model for Point Cloud Analysis

1. 论文基本信息 2. 创新点 介绍了第一个状态空间模型 PointMamba&#xff0c;将其应用与点云分析。PointMamba 表现出令人印象深刻的能力&#xff0c;包括结构简单性&#xff08;例如&#xff0c;vanilla Mamba&#xff09;、低计算成本和知识可迁移性&#xff08;例如&#…

通过验证邮箱进行注册信息确认

应用在进行注册时&#xff0c;避免恶意攻击和垃圾注册&#xff0c;可以通过验证注册者身份后才能够提交。一般可以使用验证手机短信或者验证邮箱&#xff0c;验证短信会有专门的第三方服务&#xff0c;可以进行付费购买。验证邮箱的正确与否&#xff0c;可以通过以下2种方式进行…

关于组织赴俄罗斯(莫斯科)第 28 届国际汽车零部件、汽车维修设备和商品展览会商务考察的通知

关于组织赴俄罗斯&#xff08;莫斯科&#xff09; 第 28 届国际汽车零部件、汽车维修设备和商品展览会商务考察的通知 展会名称&#xff1a;俄罗斯&#xff08;莫斯科&#xff09;第 28 届国际汽车零部件、汽车零部件、汽车维修设备和商品展览会 时间&#xff1a;2024 年 8 月…