1.时间日期类型

时间日期类型用于日期和时间的表示

包括:date(日期型),datetime(日期时间型),timestamp(时间戳型),time(时间型),year(年份)

通过实际的操作,给大家演示一下是如何操作的

我们打开一个终端,我们输入mysql hxf

show tables;我们看一下当前有那些表

我们新建一个表,create table,这个表名叫testd,字段名我们叫注册的时间,我们定义为日期型,第二个注册时间,我们定义为,时间型,第三个,我们定义为日期时间型,第四个,我们定义为时间戳型,我们还有第五个,我们把它定义为年份,同时时间戳还有另外一个特性,我们这里定义为默认值,是当前的时间戳,当记录更新的时候,叫on update,我们应该把它更新为当时的时间戳,我们回车,create table testd(reg date,reg2 time,reg3 datetime,reg4 timestamp default current_timestamp on update current_timestamp,reg5 year);

我们看一下这个表的结构,show create table testd;

我们对这个表先插入一条记录,我们看看它们保存的内容有什么特点,我们回车,insert into testd values(now(),now(),now(),now());

我们看到有两个警告,我们一会再看

我们把这个表的所有记录,select出来,select * from testd;

同时我们看now生成的是什么,select now();

我们看到now,生成的是当前的日期和时间

而我们看到第一个注册时间是日期型,它仅仅是日期,把now()中的时间丢掉了,而第二个中,它仅仅是时间,它把日期给丢掉了,仅仅保留时间,第三个是日期时间型,也就是前面两个的中和,日期加时间,第四个是时间戳,时间戳和第三个的日期和时间,它的格式是一样的,它的值也是一样的,它们的区别在于,日期时间型保存的是8个字节,它所保存的时间范围更大些,时间戳型它只保存了四个字节,它所保存的时间范围比较窄一些,年只保存年份

那么我们就明白,now()它保存日期和时间,其中有两个被截掉了,其中日期型把时间丢掉了,时间型,把日期给丢掉了,因此产生了两个警告信息,这也是它们使用的基本特点,

那么日期和时间型,同样存在越界报错的问题

我们刚刚插入的时候,使用的是now(),我们在这里输入,只对第一个,第二个字段输入,values,如果我们知道日期型,并且我们的程序并不对这些数据类型校验,那么我们有意的输入字符串,我们测试一下,insert into testd(reg,reg2) values(‘huangxifeng’,‘huangxifeng’);

我们看到有两个warnings,show warnings;

我们就会得到插入值的这两个字段名到底是什么

这是有意输入的办法,就算不是有意输入,我们刚刚看到两个warnings,这就意味着,对于我们的字段的定义,我们可以输入非法的日期或者越界的日期,比如,我们这里在插入9999-99-99,我们看看是否有报错,我们复制一下,我们再复制3份,我们回车,insert into testd values(‘9999-99-99’,‘9999-99-99’,‘9999-99-99’,‘9999-99-99’,‘9999-99-99’);

我们看到有5个warnings,看一下这个warnings是什么,show warnings;

我们看到确实每个字段都产生了警告,每个字段名都跑出来了,第一个是截断,第二个是截断,第三个是范围超出,也就是越界了,第四个是截断,第五个也是越界了

我们看下,我们刚刚插入的值,它是如何被截断的,select * from testd;

我们看到这个虽然被截断了,但是因为它输入的值是不合法的,因此它们默认就是0,这就是日期和时间型的基本使用

我们来概括一下

2.时间类型基本使用

Create table testb(d date,t time,dt datetime,ts timestamp on update current_timestamp);

Insert into testb values(now(),now(),now(),now())

基本使用,我们插入当前的日期和时间,这是没有问题的,因为这并没有超越时间所定义的范围,date和time获得的是当前的日期和当前的时间,但它们的截断是必然的,也是正常的

3.类型转换或越界报错

1.越界警告报错

Insert into testb(‘huangxifeng’,’huangxifeng’,’huangxifeng’)

我们故意输入字符串,这样会产生类型的报错,另外一方面,我们可以输入很大的日期类型,这样以便爆出越界的错误,或者截断的错误

4.小结

1.时间日期类型有哪些?

2.date,time,datetime,timestamp应用及特点

2-2日期时间类型基础相关推荐

  1. MySQL 基础 -- MySQL 数据类型说明(数值类型、字符串类型、日期时间类型)、SQL通用语法和SQL分类

    文章目录 1. 数据类型说明(数值类型.字符串类型.日期时间类型) 1.1数值类型 1.2 字符串类型 1.3 日期类型 1.4 数据类型练习:设计一张员工信息表 2. SQL通用语法和SQL分类 2 ...

  2. SQL Server中的日期时间类型

    一. 数据类型 SQL Server008在上一个版本的基础上把日期时间类的数据类型增加到了六个.除了SQL Server2005的datetime和smalltime之外,加了date,dateti ...

  3. MySQL 学习笔记(12)— 数据类型(定长字符、变长字符、字符串大对象、数字类型、日期时间类型、二进制类型)

    MySQL 常见的数据类型有字符串类型.数字类型.时间类型.二进制类型.具体的分类如下图: 1. 字符串类型 字符串类型用于存储字符和字符串数据,主要包含三种具体的类型:定长字符串.变长字符串以及字符 ...

  4. mysql中所有时间类型_MySQL 中的日期时间类型

    INSERT INTO todo (title,created_on) VALUES ('blah','2019-09-31'); ERROR 1292 (22007): Incorrect date ...

  5. Freemarker日期时间类型

    日期时间类型 ${date?date} ${date?time} ${date?datetime} 直接取值 如果,传来的是一个Date型数据会报错 ${date} 数据集 //6.创建一个数据集,可 ...

  6. mysql8.0日期类型_Mysql学习-数据类型(日期时间类型)

    日期时间类型 a.如果表示年月日,通常用DATE表示 b.如果表示年月日时分秒,通常用DATETIME表示 c.如果表示时分秒,通常同TIME表示 日期和时间类型 字节 最小值 最大值 DATE 4 ...

  7. mysql 日期时间类型 自动转型 及 运算

    日期时间类型自动转型 -- now().字符串.数字转datetime类型 create table t(dt datetime); insert into t values(now()); inse ...

  8. easyexcel 日期类型 convert_数据库的几种日期时间类型,你真的会用吗?

    日期和时间是每个系统,每个数据库设计必不可少的部分.也是容易被大家忽视的部分.很多开发者可能根本不了解以不同类型存储日期和时间意味着什么. 有朋友可能会说,数据库定义一个datetime或timest ...

  9. MySQL 日期时间类型

    MySQL支持date,time, year, timestamp, datetime五种日期时间类型 1.date类型 支持范围从1000-01-01到9999-12-31 数据预览时,显示为YYY ...

  10. mysql根据时间回退_MySQL 中的日期时间类型

    日期时间类型中包含以下几种数据类型: 各类型都有具体的取值范围,超出或非法的其他值时,MySQL 会回退到 0.TIMESTAMP 类型是个例外,给它设置一个超出范围的值时,将保存上该类型允许的最大值 ...

最新文章

  1. hadoop中HBase子项目入门讲解
  2. linux下mkdir头文件_整理Linux下gcc编译中关于头文件与库文件搜索路径相关问题
  3. 操作系统 第四章【存储器管理】【MOOC答案】
  4. MYSQL学习01--MySQL基础知识
  5. 超完美截图工具snipaste的下载使用
  6. python 语音识别机器人控制系统_python实现百度语音识别api
  7. 红与黑(信息学奥赛一本通-T1216)
  8. 面试精讲之面试考点及大厂真题 - 分布式专栏 21 限流不能乱用-系统限流最佳实践
  9. 【程序员自救指南】中关村保洁大叔的一句话竟然帮我转正了
  10. 腾讯QQ PC版9.1.7正式版上线 有些“老”功能越来越好用了
  11. 假设linux分配给u盘设备名是,嵌入式linux开发基础试卷-应用物理A答案
  12. conda安装包出现conda info (package)...的解决方法
  13. DotPass for Mac(密码生成器)
  14. C语言自动处理异常,C语言中异常错误处理机制浅析
  15. text显示下标的字体 unity_Text Mesh Pro中文版
  16. 2022 最新微信ipad协议 62 16 扫码登录 wechatapi
  17. 数据挖掘学习1--数据挖掘流程
  18. 简易实现AI虚拟鼠标—手势控制鼠标
  19. 傅里叶级数、狄利克雷收敛定理、周期延拓
  20. Meter应用中对于中文乱码的主要解决方法(转)

热门文章

  1. c++常对象和常成员函数详解
  2. Kubernetes等待部署完成 kubectl wait rollout
  3. 含有非期望产出的ZSG-DEA模型
  4. 使用cmake生成.so动态库
  5. [windows系统上运行spark报错Could not locate executable null\bin\winutils.exe in the Hadoop binaries
  6. 没有投屏标志怎么投屏_没有【TV】小图标,手机怎么投屏电视
  7. activiti之奇淫技巧一(自动完成首个任务)
  8. 微信开发验证php,解析微信公众平台开发之验证步骤实例(PHP版)
  9. Python数据分析(五) —— 绘制直方图
  10. 20210218CTF伪协议绕过file_get_contents(bugkuctf的web21御结冰城感想)