mysql unit类型_mysql入门-数据类型(二)
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入门-数据类型(二)相关推荐
- mysql 整数类型_MySQL的数据类型
1.整数 TINYINT: 8 bit 存储空间 SMALLINT: 16 bit 存储空间 MEDIUMINT: 24 bit 存储空间 INT: 32 bit 存储空间 BIGINT: 64 bi ...
- mysql option 类型_mysql之数据类型与表操作
关系数据库的注释 -- 单行注释 /* 多行注释 */ 数据类型 数值 整数 只能保存整数,如果是小数,则自动四舍五入取整. mediumint smallint tinyint(6) zerofil ...
- 20141230 mysql数值类型和列属性二
20141230 mysql数值类型和列属性二 枚举字符串 枚举字符串指的是在定义之初就确定要存放的字符串有哪些,然后在数据进行存储的时候就只能存储已经定义过的字符串,只能使用任意的一个字符串.(单选 ...
- mysql数据库 set类型_MYSQL数据库数据类型
07.14自我总结 MYSQL数据库数据类型 一.整数类型和浮点数典型 1.有符号/没符号 对于整数和负整数来说,默认情况下是有符号范围的 默认是有符号 有符号和没符号其实就是有没有包括负数,有符号是 ...
- mysql 命令类型_mysql 基本命令(3)-数据类型和运算符
一.数值类型 1.数据类型有:数值类型.日i期类型.字符串类型. 2.int(20),int 指整数的取值范围,里面的参数20,只是表示数据显示的宽度.显示宽度和数据类型的取值范围是无关的.显示宽度只 ...
- mysql 空间 类型_MySQL空间类型测试
Mysql空间类型介绍: MySQL支持空间扩展,允许生成.保存和分析地理特征.这些特征可用于MyISAM.InnoDB.NDB.BDB和ARCHIVE表(但是,ARCHIVE引擎不支持索引功能,因此 ...
- mysql教程目录_MySql目录(二)
MySql索引(二) 转自: http://www.cnblogs.com/dreamhome/archive/2013/04/16/3025304.html 所有MySQL列类型可以被索引.根据存储 ...
- mysql bit类型_MySQL bit类型
本教程将向您介绍如何存储和使用位值的MySQL BIT数据类型. MySQL BIT数据类型简介 MySQL提供了允许您存储位值的BIT类型.BIT(m)可以存储多达m位的值,m的范围在1到64之间. ...
- mysql boolean类型_mysql 布尔类型
...对象的原型创建的函数: var myvar = new Boolean(1); myvar.constructor; 结果输出: function Boolean() { [native cod ...
最新文章
- [AaronYang]C#人爱学不学8[事件和.net4.5的弱事件深入浅出]
- POJ 2785 4 Values whose Sum is 0
- POJ 1091 跳蚤
- extern “C“解决链接问题
- php如何对mysql加锁_PHP+MySQL高并发加锁事务处理问题解决方法
- C语言无缘无故提示缺少分号:missing ';' before identifier '...'
- 白话讲解:消息队列到底解决了什么问题?
- java LinkedHashMap源码解析
- 新员工入职表_医院新员工入职培训怎么做?
- Python 小白实例(一)——体脂率的计算(输入输出)
- python制作卡通表情包_python——简单生成表情包
- 跟9位爱奇艺年轻的技术、产品、设计同学聊了聊,他们这样定义“青年”
- MIPS递归:斐波那契数列
- mysql存储过程工作日判断_Oracle存储过程根据指定日期返回(N个)工作日的时间...
- linux无法识别耳机,Ubuntu 7.10中不能正常使用耳机的解决方法
- 江苏无锡14岁女孩被推荐上北大(图)
- 让1.6亿美元的公司导致破产被50万美元贱卖的无解的Python bug
- 八年级作文-流动的忧郁
- 鹏业软件安装算量计算规则,喷淋识别、以及保温设置的问题解决
- 阿里云服务器搭建私人云盘seafile