mysql入门-数据类型(二)

今天说一下mysql的数据类型日期,mysql的日期类型有date、datetime、time、year、timestamp。

date其实就是日期,例如2019年07月27日,这就是日期。而时间呢,时间就是20:31,这就是时间的类型,也就是time。datetime就是将date和time合在了一起,例如2019-07-27 20:31了,year就不用说了,年份,timestamp就是一个时间戳,类似于datetime。接下来看一下演示代码以及结果。

date:

-- 建表语句

drop table if existstest_06;create tabletest_06(

a date,

b time,

cdatetime,

dyear,

etimestamp)

desc test_06;

查看一下各个字段的类型

好了,咱们现在来插入数据,现在咱们不用sql语句来插,而是使用navicat来插入语句。

以b为例,定义的b为time类型,当插入数据的时候,可以看到,只弹出来要插入的时间,对了,这就是time类型的。看到a已经被我插入了,a的类型是date类型,看到的就如图所示。d这个是year类型,这个类型进行插入的时候并没有什么约束,能随意插入数据。来看一下最后的结果。

说明一下,最后一个字段我并没有插入,而是自动填好的,这就是timestamp的含义,他记录的是你当前修改这个表的时间,当然,你也可以选择去自己插入这个,如果不是手动插,那么就会自动帮着补上。我修改了一下a字段。e字段也会跟着改变。

这个timestamp一般用来记录修改此条记录的时间信息。

下面说一下mysql关于操作时间的函数吧。

获取当前时间的函数:now()、sysdate()、current_timestamp()、current_timestamp、current_date()、current_time()、curdate()、curtime().

下面是演示内容

但是这么多函数,彼此之间有什么区别呢,典型的例子就是now()这个函数,

select now(),sleep(3),now();

可以看到,中间线程睡了3秒钟,可是时间还是和第一个查出来的时间相同,这就是now()和其它获取当前时间函数的区别,now()会在执行sql语句的时候预分配好时间,不管线程睡眠多长时间,都是相同的结果。换成其他函数,就没有这种现象了,咱们试一下。

select SYSDATE(),sleep(3),SYSDATE();

这回结果就不相同了,这就是区别,其它的那几个就没有什么区别了。

字符串转化为时间的函数:

str_to_date(str, format)先演示一下这个函数的使用

select STR_TO_DATE('1998-02-11 12:01:32','%Y-%m-%d %H:%i:%s')

可以看到,这样就将字符串转化为了日期,里面有一些通配符,这里面的通配符和其它语言的转化时间的通配符可能有些出入,解释一下通配符的含义

%Y      代表年

%m     代表月

%d     代表日

%H     代表小时

%i      代表分钟

%s      代表秒

这些通配符一定要掌握,重中之重,后面还会用到的。

其他的字符串转化为时间的函数DATE_FORMAT(str, format),TIME_FORMAT(str, format)这两个和上一个函数的使用方法一样,只不过TIME_FORMAT(str, format)这个函数是专门转化时间所使用的。

接下来这个函数是将时间转化为天数以及将天数转化为时间,可能这么说有点小抽象,上代码

select TO_DAYS(SYSDATE());

可以看到结果为一个整型数字,我来解释一下这个数字的含义,这个数字的含义就是距离公元0000年的天数。

select TO_DAYS('0000-01-01')

这回结果直观了吧。

还有一个函数就是from_days(days),也不多说,先看代码

select FROM_DAYS(1243);

此函数的意义就是将一个天数转化为以0000年为开始节点的时间。

在介绍两个转化时间的函数:time_to_sec(time)、sec_to_time(sex)

select TIME_TO_SEC(SYSDATE());

这个函数的功能就是将时间,注意,是time,而并非date转化为秒数。

另一个函数就是将秒数转化为时间

select SEC_TO_TIME(3600)

正正好好3600秒就是一个小时。

日期拼接函数makedate(year, days of year)、maketime(hour, minute, second)

select makedate('2014', 366);select maketime(12,14,04);

day_of_year这个参数的意思就是一年中的天数,而不是一个月中的天数。

日期计算函数date_add()、date_sub()、date_diff()、timestamp()、timestampadd()、timestampdiff()。

date_add()

select date_add(SYSDATE(), INTERVAL 1 year);

select date_add(SYSDATE(), INTERVAL 1 year);select date_add(SYSDATE(), INTERVAL 1 month);select date_add(SYSDATE(), INTERVAL 1 day);select date_add(SYSDATE(), INTERVAL 1hour);select date_add(SYSDATE(), INTERVAL 1minute);select date_add(SYSDATE(), INTERVAL 1 second);

date_sub()的功能就是减去一个日期,和date_add()的方法使用相同,这里就不演示了,小伙伴们练习一下吧。

datediff()。datediff()就是两个时间相减,注意,得到的只是天数。

select datediff(SYSDATE(), '2018-12-09 13:01:23')

*得到的只是天数

timestamp()。单纯的使用timestamp只是得到指定显示的时间。例如

select TIMESTAMP('2019-12-02 14:09:36');

还有另一种用法

select TIMESTAMP(SYSDATE(), CURRENT_TIME);

# select timestamp(date, time) date+time

接下来说一下timestampadd

select TIMESTAMPADD(hour, 1, SYSDATE());

# timestampadd(unit, count, date) unit为单位,就是hour,second等,count就是加的数量,date就是指定的时间

timestampdiff(),我个人认为这个时间相减的函数比datediff好用很多,这个函数比较灵活,可以指定相减之后得到的数据展现方式,即以天展示,还是以小时的方式展示。

select timestampdiff(day, SYSDATE(), '2020-12-10');

select timestampdiff(year, SYSDATE(), '2020-12-10');

# timestampdiff(unit, firstdatetime, seconddatetime)    unit(seconddatetime - firstdatetime)

所以个人推荐以后做两个时间相减的操作,使用timestampdiff()。

今天就说这么多,已经是半夜00:06了,洗洗睡吧。

未完,待续。。。。。。

mysql unit类型_mysql入门-数据类型(二)相关推荐

  1. mysql 整数类型_MySQL的数据类型

    1.整数 TINYINT: 8 bit 存储空间 SMALLINT: 16 bit 存储空间 MEDIUMINT: 24 bit 存储空间 INT: 32 bit 存储空间 BIGINT: 64 bi ...

  2. mysql option 类型_mysql之数据类型与表操作

    关系数据库的注释 -- 单行注释 /* 多行注释 */ 数据类型 数值 整数 只能保存整数,如果是小数,则自动四舍五入取整. mediumint smallint tinyint(6) zerofil ...

  3. 20141230 mysql数值类型和列属性二

    20141230 mysql数值类型和列属性二 枚举字符串 枚举字符串指的是在定义之初就确定要存放的字符串有哪些,然后在数据进行存储的时候就只能存储已经定义过的字符串,只能使用任意的一个字符串.(单选 ...

  4. mysql数据库 set类型_MYSQL数据库数据类型

    07.14自我总结 MYSQL数据库数据类型 一.整数类型和浮点数典型 1.有符号/没符号 对于整数和负整数来说,默认情况下是有符号范围的 默认是有符号 有符号和没符号其实就是有没有包括负数,有符号是 ...

  5. mysql 命令类型_mysql 基本命令(3)-数据类型和运算符

    一.数值类型 1.数据类型有:数值类型.日i期类型.字符串类型. 2.int(20),int 指整数的取值范围,里面的参数20,只是表示数据显示的宽度.显示宽度和数据类型的取值范围是无关的.显示宽度只 ...

  6. mysql 空间 类型_MySQL空间类型测试

    Mysql空间类型介绍: MySQL支持空间扩展,允许生成.保存和分析地理特征.这些特征可用于MyISAM.InnoDB.NDB.BDB和ARCHIVE表(但是,ARCHIVE引擎不支持索引功能,因此 ...

  7. mysql教程目录_MySql目录(二)

    MySql索引(二) 转自: http://www.cnblogs.com/dreamhome/archive/2013/04/16/3025304.html 所有MySQL列类型可以被索引.根据存储 ...

  8. mysql bit类型_MySQL bit类型

    本教程将向您介绍如何存储和使用位值的MySQL BIT数据类型. MySQL BIT数据类型简介 MySQL提供了允许您存储位值的BIT类型.BIT(m)可以存储多达m位的值,m的范围在1到64之间. ...

  9. mysql boolean类型_mysql 布尔类型

    ...对象的原型创建的函数: var myvar = new Boolean(1); myvar.constructor; 结果输出: function Boolean() { [native cod ...

最新文章

  1. [AaronYang]C#人爱学不学8[事件和.net4.5的弱事件深入浅出]
  2. POJ 2785 4 Values whose Sum is 0
  3. POJ 1091 跳蚤
  4. extern “C“解决链接问题
  5. php如何对mysql加锁_PHP+MySQL高并发加锁事务处理问题解决方法
  6. C语言无缘无故提示缺少分号:missing ';' before identifier '...'
  7. 白话讲解:消息队列到底解决了什么问题?
  8. java LinkedHashMap源码解析
  9. 新员工入职表_医院新员工入职培训怎么做?
  10. Python 小白实例(一)——体脂率的计算(输入输出)
  11. python制作卡通表情包_python——简单生成表情包
  12. 跟9位爱奇艺年轻的技术、产品、设计同学聊了聊,他们这样定义“青年”
  13. MIPS递归:斐波那契数列
  14. mysql存储过程工作日判断_Oracle存储过程根据指定日期返回(N个)工作日的时间...
  15. linux无法识别耳机,Ubuntu 7.10中不能正常使用耳机的解决方法
  16. 江苏无锡14岁女孩被推荐上北大(图)
  17. 让1.6亿美元的公司导致破产被50万美元贱卖的无解的Python bug
  18. 八年级作文-流动的忧郁
  19. 鹏业软件安装算量计算规则,喷淋识别、以及保温设置的问题解决
  20. 阿里云服务器搭建私人云盘seafile

热门文章

  1. winfrom阴阳历互相转换
  2. 1119-期货要见好就收
  3. QPS、RPS、TPS、PV、UV、GMV、IP
  4. linux小白工具,一个小工具(setup),小白也能独立管理自己的Linux服务器
  5. 名帖339 张旭 草书《心经》
  6. 苹果CEO蒂姆·库克:苹果的未来
  7. HTML音乐播放器插件编写
  8. 视觉检测设备,工业视觉检测设备的介绍
  9. 职场人如何用时间管理软件提升效率
  10. Ubutun下搭建MySQL用户验证的WebDav服务器