MySQL 日期格式 DATETIME 和 TIMESTAMP

news2025/1/13 16:53:36

MySQL日期格式介绍

    • 存储日期的方式
    • mysql中存储日期的格式
      • datetime
      • timestamp
      • Datetime和Timestamp的比较
        • 相同点:
        • 不同点:
      • 数值型时间戳(INT)
      • DATETIME vs TIMESTAMP vs INT,怎么选?

存储日期的方式

  • 字符串
  • Datetime
  • Timestamp
  • int 时间戳形式

对于初学者来说,可能会用字符串来进行存储,但是实际上用字符串存储日期是十分不明智的做法。

虽然使用字符串非常简单直白,但是它有两个问题:

  • 字符串占用空间更大
  • 字符串存储日期就没有办法使用日期相关的API进行日期的计算和比较

mysql中存储日期的格式

datetime

DATETIME 在数据库中存储的形式为:YYYY-MM-DD HH:MM:SS,固定占用 8 个字节。
DATETIME 的日期范围是 1000-01-01 00:00:00.000000 到 9999-12-31 23:59:59.999999;

从 MySQL 5.6 版本开始,DATETIME 类型支持毫秒,DATETIME(N) 中的 N 表示毫秒的精度。例如,DATETIME(6) 表示可以存储 6 位的毫秒值。

DateTime 类型是没有时区信息的(时区无关) ,DateTime 类型保存的时间都是当前会话所设置的时区对应的时间。

timestamp

TIMESTAMP 实际存储的内容为‘1970-01-01 00:00:00’到现在的毫秒数。在 MySQL 中,由于类型 TIMESTAMP 占用 4 个字节,因此其存储的时间上限只能到‘2038-01-19 03:14:07’。

从 MySQL 5.6 版本开始,类型 TIMESTAMP 也能支持毫秒。与 DATETIME 不同的是,若带有毫秒时,类型 TIMESTAMP 占用 7 个字节,而 DATETIME 无论是否存储毫秒信息,都占用 8 个字节。

Timestamp 和时区有关。Timestamp 类型字段的值会随着服务器时区的变化而变化,自动换算成相应的时间,说简单点就是在不同时区,查询到同一个条记录此字段的值会不一样。

类型 TIMESTAMP 最大的优点是可以带有时区属性,因为它本质上是从毫秒转化而来。如果你的业务需要对应不同的国家时区,那么类型 TIMESTAMP 是一种不错的选择。

Datetime和Timestamp的比较

相同点:

  • 两个数据类型存储时间的表现格式一致。均为 YYYY-MM-DD HH:MM:SS
  • 两个数据类型都包含「日期」和「时间」部分。
  • 两个数据类型都可以存储微秒的小数秒(秒后 6 位小数秒)

不同点:

  • 日期范围:DATETIME 的日期范围是 1000-01-01 00:00:00.000000 9999-12-31 23:59:59.999999;TIMESTAMP 的时间范围是1970-01-01 00:00:01.000000 UTC2038-01-09 03:14:07.999999 UTC
  • 存储空间:DATETIME 的存储空间为 8 字节;TIMESTAMP 的存储空间为 4 字节
  • 时区相关:DATETIME 存储时间与时区无关;TIMESTAMP 存储时间与时区有关,显示的值也依赖于时区
  • 默认值:DATETIME 的默认值为 null;TIMESTAMP 的字段默认不为空(not null),默认值为(CURRENT_TIMESTAMP)

数值型时间戳(INT)

很多时候,我们也会使用 int 或者 bigint 类型的数值也就是时间戳来表示时间。

这种存储方式的具有 Timestamp 类型的所具有一些优点,并且使用它的进行日期排序以及对比等操作的效率会更高,跨系统也很方便,毕竟只是存放的数值。缺点也很明显,就是数据的可读性太差了,你无法直观的看到具体时间。

时间戳的定义如下:

时间戳的定义是从一个基准时间开始算起,这个基准时间是「1970-1-1 00:00:00 +0:00」,从这个时间开始,用整数表示,以秒计时,随着时间的流逝这个时间整数不断增加。这样一来,我只需要一个数值,就可以完美地表示时间了,而且这个数值是一个绝对数值,即无论的身处地球的任何角落,这个表示时间的时间戳,都是一样的,生成的数值都是一样的,并且没有时区的概念,所以在系统的中时间的传输中,都不需要进行额外的转换了,只有在显示给用户的时候,才转换为字符串格式的本地时间。

DATETIME vs TIMESTAMP vs INT,怎么选?

每种方式都有各自的优势,下面再对这三种方式做一个简单的对比:

日期类型占用空间日期格式日期范围是否存在时区问题
DATETIME8 字节YYYY-MM-DD HH:MM:SS1000-01-01 00:00:00 ~9999-12-31 23:59:59
TIMESTAMP4 字节YYYY-MM-DD HH:MM:SS1970-01-01 00:00:00 ~2038-01-19 03:14:07
INT4 字节全数字时间戳1000-01-01 00:00:01 之后的时间

TIMESTAMP 与 INT 本质一样,但是相比而言虽然 INT 对开发友好,但是对 DBA 以及数据分析人员不友好,可读性差。所以《高性能 MySQL 》的作者推荐 TIMESTAMP 的原因就是它的数值表示时间更加直观。下面是原文:

在这里插入图片描述

至于时区问题,可以由前端或者服务这里做一次转化,不一定非要在数据库中解决。

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

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

相关文章

Kotlin协程简述与上下文和调度器(Dispatchers )

协程概述 子程序或者称为函数,在所有的语言中都是层级调用,如:A调用B,B在执行过程中又调用了C,C执行完毕返回,B执行完毕返回,最后是A执行完毕。所以子程序是 通过栈来实现的,一个线…

Sar测试简介

1.Sar 简介 SAR即英语“Specific Absorption Rate”的缩写。SAR值一般指手机产品中电磁波所产生的热能,它是对人体产生影响的衡量数据,单位是W/Kg(瓦/公斤) 对于测量手机产品的“SAR”,通俗地讲,就是测量手…

STM32f103入门(4)对射式红外传感器计次(外部中断)

中断:在主程序运行过程中,出现了特定的中断触发条件 (中断源),使得CPU暂停当前正在运行的程序,转而去处理中断程序处理完成后又返回原来被暂停的位置继续运行中断优先级:当有多个中断源同时申请中断时,CPU会根据中断源的轻重缓急进…

国内的化妆品核辐射检测

化妆品核辐射物质检测是指检测化妆品中的放射性物质,包括放射性核素和放射性同位素。这些放射性物质主要来源于环境中的放射性污染,如空气、水和土壤中的放射性物质,以及化妆品生产过程中的放射性污染,如原料、设备、工艺等。化妆…

如何理解IaaS、PaaS、SaaS?盘点受欢迎的八大SaaS平台!

如何理解IaaS、PaaS、SaaS?他们各自的优势在哪里?我们又应该如何选择?本篇将带大家深入浅出的了解IaaS、PaaS、SaaS,并为大家盘点2023最受欢迎的SaaS平台。 通过本文你将了解: IaaS、PaaS、SaaS分别是什么我们该如何理…

高德地图api给点设置闪烁动画

首先高德提供了点动画两种选择和掉落弹跳,可以在属性中定义也可以setAnimation 但是没闪烁 所以css,遍历所有点标记找到要闪烁的点给一个class在deepcss一个动画 js function setshadow(params) { //获取地图所有点标记let data map.getAllOverlays(&…

Mac下使用Homebrew安装MySQL5.7

Mac下使用Homebrew安装MySQL5.7 1. 安装Homebrew & Oh-My-Zsh2. 查询软件信息3. 执行安装命令4. 开机启动5. 服务状态查询6. 初始化配置7. 登录测试7.1 终端登录7.2 客户端登录 参考 1. 安装Homebrew & Oh-My-Zsh mac下如何安装homebrew MacOS安装Homebrew与Oh-My-Zsh…

在字节划水5年被优化,太无情了...

前言 先简单说下,涵哥是某不知名 985 的本硕,17 年毕业加入字节,以“人员优化”的名义无情被裁员,之后跳槽到了有赞,一直从事软件测试的工作。还差一个月也6年了吧,算是在这行的资深划水员。6年的时间也让…

广告英语翻译的原则,你了解多少

我们知道,广告语的特点是通俗化、口语化,能够吸引读者注意,刺激其消费欲望。因此,广告英语翻译也要具有强烈的感染力,达到其预期功能。那么,如何做好广告英语翻译,关于广告英语翻译的原则&#…

SpringBoot集成JWT token实现权限验证

先在pom中引入 JWT依赖 <!-- JWT --> <dependency><groupId>com.auth0</groupId><artifactId>java-jwt</artifactId><version>4.3.0</version> </dependency> 然后引入一个生成的 token 的工具类 import cn.hutool.c…

TCP协议基础

一&#xff1a; TCP协议是什么&#xff1f; TCP协议是基于面向连接&#xff0c;可靠传输&#xff0c;基于字节流的传输层通信协议 1. 面向连接 TCP协议是一种面向连接的协议&#xff0c;意味着在双方在建立数据传输之前&#xff0c;需要进行一个逻辑上的连接&#xff0c;且是…

MySQL的mysql-bin.00xx binlog日志文件的清理

目录 引言手工清理配置自动清理 引言 公司一个项目生产环境mysql数据盘占用空间增长得特别快&#xff0c;经过排查发现是开启了mysql的binlog日志。如果把binlog日志关闭&#xff0c;如果操作万一出现问题&#xff0c;就没有办法恢复数据&#xff0c;很不安全&#xff0c;只能…

手机实景无人直播应该如何操作?

实景无人直播是一种创新的直播方式&#xff0c;通过利用实景场景进行直播&#xff0c;为观众带来真实、沉浸式的观赏和参与体验。本文将深入探讨实景无人直播的技术操作和商业思考&#xff0c;帮助读者全面了解如何搭建和运营这一新型直播模式。 一、实景无人直播的技术操作…

【Seata】00 - Seata Server 部署(Windows、Docker 基于 Jpom)

文章目录 前言参考目录版本说明Windows 部署 seata-server1&#xff1a;下载压缩包2&#xff1a;文件存储模式3&#xff1a;db 存储模式3.1&#xff1a;建表3.2&#xff1a;修改配置文件3.3&#xff1a;启动脚本4&#xff1a;源码部署 Docker 部署 seata-server &#xff08;基…

报名开启!2023 SuperMap开发者大会全议程揭幕

2023年9月13日-15日&#xff0c;2023 SuperMap开发者大会(2023 SuperMap Developer Conference&#xff0c;简称SDC 2023)将在线举办&#xff0c;聚焦地理空间智能和GIS前沿技术&#xff0c;与全体开发者一起&#xff0c;探寻利用新技术简化开发流程的方法&#xff0c;商讨如何…

【pyqt5界面化开发-5】网格布局(九宫格)界面

一、网格布局 需要模块&#xff1a;QGridLayout 代码 import sys from PyQt5.QtGui import QIcon from PyQt5.QtWidgets import QApplication, QWidget, QPushButton, QLabel, QLineEdit, QDesktopWidget, QHBoxLayout, QVBoxLayout, QGroupBox, QRadioButton, QGridLayoutc…

集创北方ICN6211 是一款MIPIDSI转RGB视频桥接IC

ICN6211 1.描述&#xff1a; ICN6211是一个桥接芯片&#xff0c;它接收MIPIDSI输入并发送RGB输出。MIPIDSI最多支持4个车道&#xff0c; 每个车道的最大运行频率为1Gbps&#xff1b;总最大输入带宽为4Gbps&#xff1b;并且还支持MIPI定义的ULPS&#xff08;超 低功耗状态&a…

企业级数据共享规模化模式

数据共享正在成为企业数据战略的重要元素。对于公司而言&#xff0c;Amazon Data Exchange 这样的亚马逊云科技服务提供了与其他公司共享增值数据或从这些数据获利的途径。一些企业希望有一个数据共享平台&#xff0c;他们可以在该平台上建立协作和战略方法&#xff0c;在封闭、…

低功耗低成本BLE发射器

低功耗低成本BLE发射器MG223基于巨微薪火架构的蓝牙射频、基带和协议栈&#xff0c;根据自研蓝牙基带和蓝牙5.1广播的特点&#xff0c;做了面向无线传感器的简化和创新&#xff0c;使之更加适合广泛的轻量级蓝牙无线传感的应用。MG223符合蓝牙5.1广播发射规范&#xff0c;现已获…

44、基于51单片机的热敏电阻的数字温度计(AD1674)(程序+Proteus仿真)

编号&#xff1a;44 基于51单片机的热敏电阻的数字温度计&#xff08;AD1674&#xff09; 功能描述&#xff1a; 本设计由51单片机最小系统AD1674模块热敏电阻模块液晶1602显示模块 1、主控制器是89C82单片机 2、AD1674模块模数转换器进行A/D转换&#xff0c;读取热敏电阻值电…