mysql中 datatime与timestamp的区别说明

yizhihongxing

MySQL 中的 DATEIME 和 TIMESTAMP 类型都用于存储日期和时间,但它们的存储和工作方式不同。下面详细讲解它们的区别说明。

DATETIME 类型

DATETIME 类型用于存储日期和时间。它使用 8 个字节存储时间和日期,其中前 4 个字节存储日期值,后 4 个字节存储时间值。DATETIME 类型可以存储从 1000 年到 9999 年的时间范围,精度为秒。

CREATE TABLE test_date_time (
    id INT UNSIGNED PRIMARY KEY,
    created_time DATETIME
);

示例1

INSERT INTO test_date_time (id, created_time) VALUES (1, NOW());

示例2

SELECT * FROM test_date_time WHERE created_time < '2022-01-01';

TIMESTAMP 类型

TIMESTAMP 类型也用于存储日期和时间。它也使用 8 个字节存储时间和日期,其中与 DATETIME 类型不同的是,前 4 个字节存储时间戳值,后 4 个字节存储小数部分,精度为毫秒。

CREATE TABLE test_time_stamp (
    id INT UNSIGNED PRIMARY KEY,
    created_time TIMESTAMP
);

示例1

INSERT INTO test_time_stamp (id, created_time) VALUES (1, NOW());

示例2

SELECT * FROM test_time_stamp WHERE created_time < '2022-01-01';

区别

  1. 存储方式不同。DATETIME 存储的是日期和时间的字节格式,而 TIMESTAMP 存储的是时间戳的字节格式。

  2. 时间范围不同。DATETIME 范围是从 1000 年到 9999 年,而 TIMESTAMP 只能存储在 1970 年到 2038 年之间的时间戳。

  3. 精度不同。DATETIME 精度为秒,TIMESTAMP 精度为毫秒。

  4. 自动更新的行为不同。当一个 DATETIME 列被更新时,它的值不会自动更改。相反,当一个 TIMESTAMP 列被更新时,它的值会被自动更新为当前的时间戳。

基于这些区别,我们需要根据实际需要,选择合适的数据类型,从而尽可能地优化数据存储和查询效率。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:mysql中 datatime与timestamp的区别说明 - Python技术站

(0)
上一篇 2023年5月22日
下一篇 2023年5月22日

相关文章

  • laravel使用redis监听在内部再次使用redis遇到的问题

    问题一:启用监听收不到过期时间消息,原因是未开启配置解决办法是 在redis配置文件内开启 notify-keyspace-events Ex或者在redis命令行 redis-cli 使用命令: config set notify-keyspace-events Ex 问题二:PredisConnectionConnectionException : Er…

    Redis 2023年4月11日
    00
  • 虚拟机linux端mysql数据库无法远程访问的解决办法

    如何解决虚拟机Linux端MySQL数据库无法远程访问的问题 一、问题背景 在使用Linux虚拟机中的MySQL数据库时,有时候需要通过远程连接的方式进行数据库操作,但是在进行远程连接时,会出现连接被拒绝的情况。这可能是由于数据库未开启远程访问或者端口未开放等问题导致的。 二、解决步骤 查看MySQL的监听端口 在终端中输入如下命令查看MySQL监听的端口号…

    database 2023年5月22日
    00
  • C#拼接SQL语句 用ROW_NUMBER实现的高效分页排序

    接下来我会详细讲解如何使用C#拼接SQL语句实现高效分页排序,并附上两条示例说明。 什么是ROW_NUMBER? 首先,我们需要了解一下ROW_NUMBER函数的作用。ROW_NUMBER是SQL Server中的一种分析函数,用于给每一行数据加上行号。通过ROW_NUMBER,我们可以方便地实现分页和排序。 如何使用ROW_NUMBER进行分页排序? 使用…

    database 2023年5月21日
    00
  • 如何使用Python连接和操作PostgreSQL数据库?

    在Python中,可以使用psycopg2模块连接和操作PostgreSQL数据库。以下是Python使用psycopg2模块连接和操作PostgreSQL数据库的完整攻略,包括连接PostgreSQL数据库、插入数据、查询数据、更新数据和删除数据等操作。 连接PostgreSQL数据库 在Python中,可以使用psycopg2模块连接PostgreSQL…

    python 2023年5月12日
    00
  • MySQL事务视图索引备份和恢复概念介绍

    MySQL 事务视图索引备份和恢复概念介绍 什么是 MySQL 事务视图索引备份与恢复 MySQL 事务视图索引备份与恢复是指通过备份和恢复MySQL数据库的方式,实现数据的完整性和一致性。MySQL 事务视图索引是指一种保证读取到的数据是事务开始时的快照,而不受其他事务的干扰的机制。 MySQL 事务视图索引备份与恢复的方法 MySQL 事务视图索引备份与…

    database 2023年5月19日
    00
  • Ubuntu16.04 安装Teamviewer的教程详解

    下面是详细的攻略: Ubuntu16.04 安装Teamviewer的教程详解 介绍TeamViewer TeamViewer 是一款跨平台的远程控制软件,它可以用于在本地或远程计算机之间远程控制,桌面共享,文件传输和在线会议等。使用 TeamViewer 可以方便地协作工作和解决问题。 安装TeamViewer 在 Ubuntu16.04 中打开终端。 添…

    database 2023年5月22日
    00
  • HTML5教程之html 5 本地数据库(Web Sql Database)

    HTML5提供了多种本地存储技术供开发者使用,其中Web SQL Database是一种在浏览器端使用SQL语句操作本地数据库的技术。下面我将详细讲解Web SQL Database的使用教程。 1. 创建数据库 Web SQL Database使用的是SQLite数据库,我们首先需要创建一个数据库。可以通过以下代码创建一个名为mydb的数据库: var d…

    database 2023年5月21日
    00
  • 如何使用Python在MySQL中使用连接查询?

    以下是如何使用Python在MySQL中使用连接查询的完整使用攻略,包括连接MySQL数据库、创建表、插入数据、使用连接查询等步骤。同时,提供两个示例以便更好理解如何使用Python在MySQL中使用连接查询。 步骤1:连接MySQL数据库 在Python中,我们可以使用pymysql模块连接到MySQL数据库。以下是连接MySQL数据库的基本语法: imp…

    python 2023年5月12日
    00
合作推广
合作推广
分享本页
返回顶部