Mysql中有关Datetime和Timestamp的使用总结

Mysql中有关Datetime和Timestamp的使用总结

Datetime和Timestamp的概述

DateTime和Timestamp是Mysql中常用的两种日期/时间类型。

  • 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' 之间的时间。

Datetime和Timestamp的相同点

  • 都可以保存日期和时间。
  • 存储的时间精确到秒。

Datetime和Timestamp的不同点

  • 存储的时间范围不同。
  • 存储方式不同。
    • DateTime占用8个字节。
    • Timestamp占用4个字节。

Datetime和Timestamp的使用场景

  • 如果需要记录比2038年大的时间,必须使用DateTime。
  • 如果需要记录比1970年小的时间,也必须使用DateTime。
  • 如果需要记录1970年到2038年之间的时间,可以使用Timestamp。
  • 如果只是记录近期时间或用于更新时间戳,建议使用Timestamp。

示例说明

下面给出两个Datetime和Timestamp的实例说明。

示例1

首先创建一个名为test的表。

CREATE TABLE test (
  id INT(11) NOT NULL AUTO_INCREMENT,
  name VARCHAR(50) NOT NULL DEFAULT '',
  create_time DATETIME DEFAULT NULL,
  update_time TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
  PRIMARY KEY (id)
) ENGINE=INNODB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci

可以看到表中有两个时间类型的字段,create_time和update_time。

插入一条测试数据。

INSERT INTO test (name) VALUES ('test');

可以看到新增的数据中,create_time和update_time都是null。

SELECT * FROM test;
id name create_time update_time
1 test NULL 2021-06-02 10:56:36

现在再执行一条update语句。

UPDATE test SET name='newtest' WHERE id=1;

执行完之后再次查询,可以看到update_time已经被赋值为当前时间(当前时间是2021-06-02 11:01:56)。

SELECT * FROM test;
id name create_time update_time
1 newtest NULL 2021-06-02 11:01:56

示例2

接着创建一个名为test2的表。

CREATE TABLE test2 (
  id INT(11) NOT NULL AUTO_INCREMENT,
  name VARCHAR(50) NOT NULL DEFAULT '',
  create_time TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
  PRIMARY KEY (id)
) ENGINE=INNODB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci

可以看到表中只有一个时间类型的字段create_time。

插入一条测试数据。

INSERT INTO test2 (name) VALUES ('test');

查询数据。

SELECT * FROM test2;

可以看到新增的数据中,create_time已经被赋值为当前时间(当前时间是2021-06-02 11:06:57)。

id name create_time
1 test 2021-06-02 11:06:57

再执行一条update语句。

UPDATE test2 SET name='newtest' WHERE id=1;

查询数据。

SELECT * FROM test2;

可以看到create_time的值没变。

id name create_time
1 newtest 2021-06-02 11:06:57

可以看到,对于Timestamp类型的字段,只有新增时会自动赋值为当前时间,而更新时不会改变它的值,必须手动赋值。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Mysql中有关Datetime和Timestamp的使用总结 - Python技术站

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

相关文章

  • OL7.6上RPM方式安装Oracle 19c的教程

    下面我会详细讲解在OL 7.6操作系统上使用RPM方式安装Oracle 19c的完整攻略。 前置条件 在开始安装之前,需要确保以下前置条件已经满足: 已安装OL 7.6操作系统 已配置yumd源并且可以正常连接互联网 已安装unzip命令并确保其可以被使用 已安装wget命令并确保其可以被使用 确认服务器的操作系统内核版本符合Oracle 19c的要求,具体…

    database 2023年5月22日
    00
  • Mysql开启慢SQL并分析原因

    下面是详细讲解如何开启慢SQL并分析原因的完整攻略: 1. 开启慢SQL日志 MySQL 提供了慢查询日志功能,可以记录执行时间超过规定阈值的 SQL 语句。通过开启慢SQL日志,可以了解到哪些SQL查询语句执行缓慢,以便优化性能,提高查询效率。 1.1 修改my.cnf配置文件 首先,我们需要修改my.cnf配置文件,以开启慢SQL日志。在使用过程中,可能…

    database 2023年5月19日
    00
  • MySQL错误日志(Error Log)详解

    MySQL是一个开源的关系型数据库管理系统,广泛应用于各个领域中。 MySQL错误日志(Error Log)是MySQL数据库日志文件之一,记录了MySQL在运行时所发生的错误和异常信息。MySQL错误日志是MySQL管理员和开发人员诊断和解决问题的重要工具。 本文将详细介绍MySQL错误日志及其使用方法。 MySQL错误日志的类型 MySQL错误日志主要包…

    MySQL 2023年3月10日
    00
  • 阿里巴巴 MySQL 数据库之建表规约(一)

    建表规约 强制部分 【强制】 表达是与否概念的字段,必须使用 is_xxx 的方式命名,数据类型是 unsigned tinyint (1 表示是,0 表示否)。说明:任何字段如果为非负数,必须是 unsigned。正例:表达逻辑的字段名 is_deleted,1 表示删除,0 表示未删除。 【强制】 表名、字段名必须使用小写字母或数字,禁止出现数字开头,禁…

    MySQL 2023年4月13日
    00
  • .net core实用技巧——将EF Core生成的SQL语句显示在控制台中

    下面是详细讲解“.net core实用技巧——将EF Core生成的SQL语句显示在控制台中”的完整攻略。 什么是EF Core? Entity Framework Core(EF Core)是一个跨平台开源ORM框架,可用于开发.NET平台上的应用程序。EF Core具有轻量级、可扩展性、高性能等优点,是.NET生态中最受欢迎的ORM框架之一。 为什么要显…

    database 2023年5月21日
    00
  • 非常全面的Java异常处理(全文干货,值得收藏)

    非常全面的Java异常处理(全文干货,值得收藏) 异常是什么 异常是指在程序的执行过程中出现了一些意外情况而导致的程序中断。这种意外情况可能是代码中的语法错误、参数错误、空指针引用等。 异常处理的意义 异常处理的目的在于让程序在出现异常后依然可以正常运行,避免出现程序崩溃的情况,同时给出明确的错误提示,让用户知道出了什么问题。 常见的异常类型 在Java中,…

    database 2023年5月18日
    00
  • Mysql基础入门 轻松学习Mysql命令

    Mysql基础入门 轻松学习Mysql命令 Mysql是一种常用的关系型数据库管理系统,本文将带你入门学习Mysql的基本命令。 安装Mysql 首先需要安装Mysql,可以从官方网站上下载并安装适合自己操作系统的版本。在安装完成后,可以通过以下命令登录到Mysql的命令行界面: mysql -u username -p 其中username为用户名。执行上…

    database 2023年5月21日
    00
  • 在ASP.NET 2.0中操作数据之五十四:添加新记录时包含一个文件上传选项

    在ASP.NET 2.0中添加新记录时包含一个文件上传选项的过程包括以下几步骤: 在ASP.NET页面中添加FileUpload控件 在代码中处理上传文件并保存到服务器 将上传文件的路径保存到数据库中 下面将详细讲解每一步骤的具体操作: Step 1. 在ASP.NET页面中添加FileUpload控件 在ASP.NET页面中添加FileUpload控件,以…

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