当前位置: 首页 > news >正文

MySQL时间和日期类型详解(零基础入门篇)

目录

1. DATE

2. DATETIME

3. TIMESTAMP

4. TIME

5. YEAR

6. 日期和时间的使用示例


以下SQL语句的测试可以使用命令行,或是使用SQL工具比如MySQL Workbench或SQLynx等。

在 MySQL 中,时间和日期数据类型用于存储与时间相关的数据,如何合理地利用时间的格式来存储相关的数据在实际的应用过程中很重要,目前MySQL主要支持DATE、DATETIME、TIMESTAMP、TIME和YEAR五种基础的时间类型格式。

这些数据类型可以帮助开发人员处理各种时间和日期操作,例如存储用户的出生日期、订单的创建时间等。以下是 MySQL 中主要的时间和日期数据类型的介绍:

1. DATE

  • 格式YYYY-MM-DD
  • 范围1000-01-019999-12-31
  • 用途:存储日期,不包含时间部分。
  • 示例
    CREATE TABLE example (birth_date DATE
    );INSERT INTO example (birth_date) VALUES ('2023-06-01');
    

2. DATETIME

  • 格式YYYY-MM-DD HH:MM:SS
  • 范围1000-01-01 00:00:009999-12-31 23:59:59
  • 用途:存储日期和时间。
  • 示例
    CREATE TABLE example (created_at DATETIME
    );INSERT INTO example (created_at) VALUES ('2023-06-01 12:30:45');
    

3. TIMESTAMP

  • 格式YYYY-MM-DD HH:MM:SS
  • 范围1970-01-01 00:00:01 UTC 至 2038-01-19 03:14:07 UTC
  • 用途:存储 Unix 时间戳,通常用于记录事件的创建和修改时间。受时区影响,支持自动初始化和更新。
  • 示例
    CREATE TABLE example (updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
    );INSERT INTO example (updated_at) VALUES (CURRENT_TIMESTAMP);
    

4. TIME

  • 格式HH:MM:SS
  • 范围-838:59:59838:59:59
  • 用途:存储一天中的时间部分,不包含日期。
  • 示例
    CREATE TABLE example (event_time TIME
    );INSERT INTO example (event_time) VALUES ('12:30:45');
    

5. YEAR

  • 格式YYYY
  • 范围190121550000
  • 用途:存储年份。
  • 示例
    CREATE TABLE example (birth_year YEAR
    );INSERT INTO example (birth_year) VALUES (2023);
    

6. 日期和时间的使用示例

CREATE TABLE orders (order_id INT AUTO_INCREMENT PRIMARY KEY,customer_id INT,order_date DATE,order_time TIME,order_datetime DATETIME,last_update TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
);INSERT INTO orders (customer_id, order_date, order_time, order_datetime)
VALUES (1, '2023-06-01', '14:30:00', '2023-06-01 14:30:00');

在这个示例中,orders 表包含多个与时间相关的列:

  • order_date:存储订单日期。
  • order_time:存储订单时间。
  • order_datetime:存储订单的日期和时间。
  • last_update:使用 TIMESTAMP 类型存储记录的最后更新时间,并在每次更新时自动刷新。

通过这些不同的时间和日期类型,MySQL 提供了灵活的方式来处理和存储时间相关的数据。

相关文章:

  • 关于Mysql 中 Row size too large (> 8126) 错误的解决和理解
  • Vue待学习
  • YOLOv8改进 | 注意力机制 | 正确的 Self-Attention 与 CNN 融合范式,性能速度全面提升【独家创新】
  • 秋招突击——第三弹——Java的SSN框架快速入门——SpringMVC
  • 搭建WWW服务
  • 设计模式之服务定位模式
  • 【机器学习】神经网络与深度学习:探索智能计算的前沿
  • 以太坊网络中为什么要设置Gas上限
  • 从零手写实现 nginx-23-nginx 对于 cookie 的操作
  • mysql的索引可以分为哪些类型
  • 编程后端:深入探索其所属的行业领域
  • Petalinux由于网络原因产生的编译错误(2)--Fetcher failure:Unable to find file
  • 技术革命的十年:计算机、互联网、大数据、云计算与AI
  • 基于GTX 8B10B编码的自定义PHY上板测试(高速收发器十四)
  • 【Linux】基础IO——文件描述符,重定向
  • 2018以太坊智能合约编程语言solidity的最佳IDEs
  • classpath对获取配置文件的影响
  • JavaScript异步流程控制的前世今生
  • JS实现简单的MVC模式开发小游戏
  • Linux学习笔记6-使用fdisk进行磁盘管理
  • Mac 鼠须管 Rime 输入法 安装五笔输入法 教程
  • PHP的Ev教程三(Periodic watcher)
  • puppeteer stop redirect 的正确姿势及 net::ERR_FAILED 的解决
  • Selenium实战教程系列(二)---元素定位
  • Spark in action on Kubernetes - Playground搭建与架构浅析
  • 高度不固定时垂直居中
  • 基于遗传算法的优化问题求解
  • 将回调地狱按在地上摩擦的Promise
  • 聊聊flink的TableFactory
  • 爬虫模拟登陆 SegmentFault
  • 再次简单明了总结flex布局,一看就懂...
  • 国内开源镜像站点
  • # 服务治理中间件详解:Spring Cloud与Dubbo
  • #define、const、typedef的差别
  • #pragma once与条件编译
  • (3)医疗图像处理:MRI磁共振成像-快速采集--(杨正汉)
  • (9)STL算法之逆转旋转
  • (Redis使用系列) Springboot 实现Redis消息的订阅与分布 四
  • (第27天)Oracle 数据泵转换分区表
  • (二开)Flink 修改源码拓展 SQL 语法
  • (附源码)计算机毕业设计ssm高校《大学语文》课程作业在线管理系统
  • (附源码)计算机毕业设计SSM疫情社区管理系统
  • (企业 / 公司项目)前端使用pingyin-pro将汉字转成拼音
  • (深入.Net平台的软件系统分层开发).第一章.上机练习.20170424
  • (十二)python网络爬虫(理论+实战)——实战:使用BeautfulSoup解析baidu热搜新闻数据
  • (转)socket Aio demo
  • ***汇编语言 实验16 编写包含多个功能子程序的中断例程
  • .NET 4.0中的泛型协变和反变
  • .NET 的静态构造函数是否线程安全?答案是肯定的!
  • .net操作Excel出错解决
  • .net反混淆脱壳工具de4dot的使用
  • [ Python ]使用Charles对Python程序发出的Get与Post请求抓包-解决Python程序报错问题
  • [000-01-018].第3节:Linux环境下ElasticSearch环境搭建
  • [20171113]修改表结构删除列相关问题4.txt
  • [ABP实战开源项目]---ABP实时服务-通知系统.发布模式