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

MySQL——日期与时间类型

        为了方便在数据库中存储日期和时间,MySQL 提供了表示日期和时间的数据类型分别是 YEAR、DATE、TIME、DATETIME 和 TIMESTAMP。下表列举了这些 MySQL 中日期和时间数据类型所对应的字节数、取值范围、日期格式以及零值。

数据类型字节数取值范围日期格式零值
YEAR11901~2155YYYY0000
DATE41000-01-01~9999-12-3YYYY-MM-DD0000-00-00
TIME3
 
-838:59:59~838:59:59
1000-01-01
HH:MM:SS00:00:00
DATETIME8
 
00:00:00~9999-12-31 23:59:59YYYY-MM-DDHH:MM:SS0000-00-00 00:00:00
TIMESTAMP41970-01-01 00:00:01~2038-01-19 03:14:07YYYY-MM- DDHH:MM:SS0000-00-00 00:00:00

        从表中可以看出,每种日期和时间类型的取值范围都是不同的。需要注意的是如果插入的数值不合法,系统会自动将对应的零值插入数据库中。

1. YEAR 类型

YEAR 类型用于表示年份,在 MySQL中,可以使用以下三种格式指定 YEAR 类型的值。

        (1)使用4位字符串或数字表示,范围为 ' 1901 ' ~ ' 2155 ' 或 1901~2155。例如,输入 ' 2014 ' 或 2014,插入到数据库中的值均为 2014 。


        (2)使用两位字符串表示,范围为 ' 00 ' ~ ' 99 ' ,其中, ' 00 ’ ~ ' 69 ' 范围的值会被转换为 2000~2069 范围的 YEAR值, ' 70 ’~ ' 99 ' 范围的值会被转换为 1970~1999 范围的 YEAR 值。例如,输入 ' 14 ' ,插入到数据库中的值为 2014 。


        (3)使用两位数字表示,范围为 1~99,其中,1~69 范围的值会被转换为 2001~2069 范围的 YEAR值,70~99 范围的值会被转换为 1970~1999 范围的 YEAR 值。例如,输入 14,插入到数据库中的值为 2014。

        需要注意的是,当使用 YEAR 类型时,一定要区分 ' 0 ' 和 0。因为字符串格式的 ' 0 ' 表示的 YEAR 值是 2000,而数字格式的 0 表示的 YEAR 值是 0000。

2. DATE 类型

        DATE类型用于表示日期值,不包含时间部分。在 MySQL中,可以使用以下 4 种格式指定 DATE 类型的值。

        (1)以 ' YYYY-MM-DD ' 或者 ' YYYYMMDD ' 字符串格式表示。

                例如,输人 ' 2014-01-21 ' 或 ' 20140121 ',插入数据库中的日期都为 2014-01-21。

        (2)以 ' YY-MM-DD ' 或者 ' YYMMDD ' 字符串格式表示。YY 表示的是年,范围为 ' 00 ' ~ ' 99 ',其中 ' 00 ' ~'  69 ' 范围的值会被转换为 2000~2069 范围的值, ' 70 ’ ~ ' 99 ' 范围的值会被转换为 1970~1999 范围的值。

                例如,输入 ' 14-01-21 ' 或 ' 140121 ',插人数据库中的日期都为 2014-01-21。 

      (3)以 YY-MM-DD 或者 YYMMDD 数字格式表示。

                例如,输入 14-01-21或140121,插人数据库中的日期都为 2014-01-21

        (4)使用 CURRENT DATE 或者 NOW() 表示当前系统日期。

3.TIME 类型

        TIME 类型用于表示时间值,它的显示形式一般为 HH:MM:SS,其中,HH 表示小时,MM 表示分,SS表示秒。在 MySQL中,可以使用以下三种格式指定 TIME 类型的值。

        (1)以 ' D HH;MM;SS ' 字符串格式表示。其中,D表示日,可以取 0~34 之间的值插入数据时,小时的值等于(Dx24+HH)。

                例如,输人 ' 2 11;30.50 ' ,插人数据库中的日期为 59:30:50。

        (2)以 ' HHMMSS ' 字符串格式或者 HHMMSS 数字格式表示。

                例如,输人 ' 345454 ' 或 345454,插入数据库中的日期为 34:54:54。

        (3)使用CURRENT_TIME或 NOWO)输人当前系统时间。

                DATETIME类型用于表示日期和时间,它的显示形式为 ' YYYY-MM-DD HH ' 。

4. DATETIME 类型

        DATETIME类型用于表示日期和时间,它的显示形式为:' YYYY-MM-DD HH MM:SS ' ,        其中,YYYY 表示年,MM 表示月,DD 表示日,HH 表示小时,MM 表示分,SS表示秒。在 MySQL 中,可以使用以下 4 种格式指定 DATETIME 类型的值。

        (1)以 ' YYYY-MM DD HH;MM;SS ' 或者 ' YYYYMMDDHHMMSS ' 字符串格式表示的日期和时间。取值范围为 ' 1000-01-01 00;00:00 ' - ' 9999-12-31 23:59;59 ' 例如,输入 ' 2014-01-22 09:01;23 ' 或 20140122090123 ,插人数据库中的 DATETIME 值都为 2014-01-22 09:01:23。

        (2)以 ' YY-MM-DD HH:MM;SS ' 或者 ' YYMMDDHHMMSS ' 字符串格式表示的日值都为 2014-01-22 09;01:23。日期和时间,其中 YY表示年,取值范围为 ' 00 ' ~ ' 99 ’ 。与 DATE 类型中的 YY 相同,' 00 ' ~ ' 69 ' 范围的值会被转换为 2000~2069 范围的值,' 70 ’ ~ ' 99 ' 范围的值会被转换为 1970~1999 范围的值。

        (3)以 YYYYMMDDHHMMSS 或者 YYMMDDHHMMSS 数字格式表示的日期和时间。例如,插入 20140122090123 或者 140122090123 ,插入数据库中的 DATETIME 值都为 2014-01-22 09:01:23。

        (4)使用 NOW( ) 来输入当前系统的日期和时间。

5.TIMESTAMP 类型

        TIMESTAMP 类型用于表示日期和时间,它的显示形式与 DATETIME 相同,但取值范围比 DATETIME 小。下面介绍几种 TIMESTAMP 类型与 DATATIME 类型不同的形式,具体如下。

(1)使用CURRENT_TIMESTAMP 来输人系统当前日期和时间

(2)输入 NULL时,系统会输人系统当前日期和时间。

(3)无任何输入时,系统会输入系统当前日期和时间。

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 1000W长连接,如何建立和维护?千万用户IM 架构设计
  • PHP苹果 V X iPhone微商i o s多分开V X语音转发密友朋友圈一键跟圈软件
  • C#中读写INI配置文件
  • 前端入门知识分享:HTML 页面中 head 标签之间的代码详解
  • Laravel API资源收集器:打造高效数据响应的秘诀
  • springboot智能健康管理平台-计算机毕业设计源码57256
  • 【系统架构设计师】二十二、嵌入式系统架构设计理论与实践③
  • 【Docker系列】Docker 中-d 和-it 的区别
  • 【Redis 进阶】事务
  • 51单片机和STM32区别
  • vite+typescript项目 报错:找不到模块“./*.vue”或其相应的类型声明——解决方案
  • 仓颉语言 -- 网络编程
  • 编程入门:大学新生的指南与策略
  • Docker 和 Docker Compose 的区别对比
  • AI学习指南机器学习篇-Q学习的优缺点
  • 分享的文章《人生如棋》
  • 0x05 Python数据分析,Anaconda八斩刀
  • React16时代,该用什么姿势写 React ?
  • SpringBoot 实战 (三) | 配置文件详解
  • Travix是如何部署应用程序到Kubernetes上的
  • 程序员该如何有效的找工作?
  • 持续集成与持续部署宝典Part 2:创建持续集成流水线
  • 经典排序算法及其 Java 实现
  • 排序算法之--选择排序
  • 强力优化Rancher k8s中国区的使用体验
  • 少走弯路,给Java 1~5 年程序员的建议
  • 一些基于React、Vue、Node.js、MongoDB技术栈的实践项目
  • 用 Swift 编写面向协议的视图
  • 用Node EJS写一个爬虫脚本每天定时给心爱的她发一封暖心邮件
  • 原生Ajax
  • ​Linux·i2c驱动架构​
  • !!Dom4j 学习笔记
  • #NOIP 2014# day.1 生活大爆炸版 石头剪刀布
  • $(function(){})与(function($){....})(jQuery)的区别
  • (C语言)球球大作战
  • (delphi11最新学习资料) Object Pascal 学习笔记---第2章第五节(日期和时间)
  • (windows2012共享文件夹和防火墙设置
  • (二)c52学习之旅-简单了解单片机
  • (黑马点评)二、短信登录功能实现
  • (三维重建学习)已有位姿放入colmap和3D Gaussian Splatting训练
  • (数据大屏)(Hadoop)基于SSM框架的学院校友管理系统的设计与实现+文档
  • (四) 虚拟摄像头vivi体验
  • (一)appium-desktop定位元素原理
  • (杂交版)植物大战僵尸
  • (轉貼) 蒼井そら挑戰筋肉擂台 (Misc)
  • (自适应手机端)响应式新闻博客知识类pbootcms网站模板 自媒体运营博客网站源码下载
  • .naturalWidth 和naturalHeight属性,
  • .NET 2.0中新增的一些TryGet,TryParse等方法
  • .NET 3.0 Framework已经被添加到WindowUpdate
  • .NET C# 使用GDAL读取FileGDB要素类
  • .NET 发展历程
  • .net/c# memcached 获取所有缓存键(keys)
  • .NETCORE 开发登录接口MFA谷歌多因子身份验证
  • .NET成年了,然后呢?
  • /etc/fstab 只读无法修改的解决办法