07、MySQL—时间日期类型

时间日期类型

1、Date

  日期类型:系统使用三个字节来存储数据,对应的格式为:YYYY-mm-dd,能表示的范围是从1000-01-01 到9999-12-12,初始值为0000-00-00

2、Time

  时间类型:能够表示某个指定的时间,但是系统同样是提供3个字节来存储,对应的格式为:HH:ii:ss,但是mysql中的time类型能够表示时间范围要大的多,能表示从-838:59:59~838:59:59,在mysql中具体的用处是用来描述时间段。

3、Datetime

  日期时间类型:就是将前面的date和time合并起来,表示的时间,使用8个字节存储数据,格式为YYYY-mm-dd HH:ii:ss,能表示的区间1000-01-01 00:00:00 到9999-12-12 23:59:59,其可以为0值:0000-00-00 00:00:00

4、Timestamp

  时间戳类型:mysql中的时间戳只是表示从格林威治时间开始,但是其格式依然是:YYYY-mm-dd HH:ii:ss

5、Year

  年类型:占用一个字节来保存,能表示1900~2155年,但是year有两种数据插入方式:0~99和四位数的具体年

① 创建对应的时间日期类型的数据表

② 插入数据:正常数据

③ year的特殊性:可以采用两位数的数据插入,也可以采用四位数的年份插入

④ year进行两位数插入的时候,有一个区间划分,零界点为69和70:当输入69以下,那么系统时间为20+数字,如果是70以上,那配系统时间为19+数字

⑤ timestamp当对应的数据被修改的时候,会自动更新(这个被修改的数据不是自己)

⑥ time类型特殊性:本质是用来表示时间区间(当前时间之后的多少个小时),能表示的范围比较大

⑦ 在进行时间类型录入的时候(time)还可以使用一个简单的日期代替时间,在时间格式之前加一个空格,然后指定一个数字(可以是负数):系统会自动将该数字转换成天数 * 24小时,再加上后面的时间。

  PHP中有着非常强大的时间日期转换函数:date将时间戳转换成想要的格式,strtotime又可以将很多格式转换成对应的时间戳。PHP通常不需要数据库来帮助处理这么复杂的时间日期,所以通常配合PHP的时候,时间的保存通常使用时间戳(真正),从而用整型来保存。字符串型

Mysql记录长度

  在mysql中,有一项规定:mysql的记录长度(record == 行row)总长度不能超过65535个字节。

  Varchar能够存储的理论值为65535个字符:字符在不同的字符集下可能占用多个字节。

① 创建表:证明varchar在mysql中能够达到的理论值(utf8和GBK)

Varchar除了存储的数据本身要占用空间:还需要额外的空间来保存记录长度

②  计算在utf8和GBK下对应的varchar能够存储的长度

Utf8 最多只能存储21844个字符

GBK最多只能存储32766个字符

原文地址:https://www.cnblogs.com/CSAH/p/11129735.html

时间: 2024-08-11 19:49:23

07、MySQL—时间日期类型的相关文章

Hibernate @Temporal 注解处理Java与Mysql时间日期类型的映射关系

2017-4-2 在 Java 中使用 java.util.Date 和 java.util.Calendar 表示时间.日期类型.在 Mysql 中使用 YEAR.DATE.TIME.TIMESTAMP.DATETIME 五种数据类型表示时间日期,由此引出了 Java 日期类型跟数据库的日期类型怎么映射的问题.本文总结了使用 Hibernate @Temporal 注解的解决方案. 使用 @Temporal 注解修饰 Java 实体类的数据类型 指定 @Temporal value 属性,其中

mysql 时间日期函数类型和使用

-- mysql 时间日期函数类型和使用-- 1.DAY().MONTH().YEAR()--返回指定日期的天数.月数.年数:select day(CURDATE()) as '日' from dual; select month(CURDATE()) as '月' from dual; select year(CURDATE()) as '年' from dual; -- 2 .NOW().current_timestamp().localtime(),localtimestamp() 取的是

java和mysql之间的时间日期类型传递

mysql(版本:5.1.50)的时间日期类型如下: datetime 8bytes xxxx-xx-xx xx:xx:xx 1000-01-01 00:00:00到9999-12-31 23:59:59timestamp 4bytes xxxx-xx-xx xx:xx:xx 1970-01-01 00:00:01到2038date 3bytes xxxx-xx-xx 1000-01-01到9999-12-31year 1bytes xxxx 1901到2155time 3bytes xx:xx

sqoop导入数据时间日期类型错误

一个问题困扰了很久,用sqoop import从mysql数据库导入到HDFS中的时候一直报错,最后才发现是一个时间日期类型的非法值导致. hive只支持timestamp类型,而mysql中的日期类型是datetime, 当datetime的值为0000-00-00 00:00:00的时候,sqoop import成功,但是在hive中执行select语句查询该字段的时候报错. 解决方法是在创建hive表时用string字段类型. sqoop导入数据时间日期类型错误,布布扣,bubuko.co

Java中日期类型和mysql中日期类型进行整合

1. java与mysql中日期.时间类型总结: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 mysql(版本:5.1.50)的时间日期类型如下: datetime 8bytes xxxx-xx-xx xx:xx:xx 1000-01-01 00:00:00到9999-12-31 23:59:59 timestamp 4bytes xxxx-xx-xx xx:xx:xx 1970-01-01 00:00:01到2038 date 3bytes xxxx-x

MySQL各种日期类型与整型(转)

日期类型 存储空间 日期格式 日期范围 datetime 8 bytes YYYY-MM-DD HH:MM:SS 1000-01-01 00:00:00 ~ 9999-12-31 23:59:59 timestamp 4 bytes YYYY-MM-DD HH:MM:SS 1970-01-01 00:00:01 ~ 2038 date 3 bytes YYYY-MM-DD 1000-01-01 ~ 9999-12-31 year 1 bytes YYYY 1901 ~ 2155 timestam

MySql的日期类型datetime和timestamp

一.MySQL中如何表示当前时间? 其实,表达方式还是蛮多的,汇总如下: CURRENT_TIMESTAMP CURRENT_TIMESTAMP() NOW() LOCALTIME LOCALTIME() LOCALTIMESTAMP LOCALTIMESTAMP() 二.关于TIMESTAMP和DATETIME的比较 一个完整的日期格式如下:YYYY-MM-DD HH:MM:SS[.fraction],它可分为两部分:date部分和time部分,其中,date部分对应格式中的"YYYY-MM-

Mysql存储日期类型用int、timestamp还是datetime?

通常存储时间用datetime类型,现在很多系统也用int存储时间,它们有什么区别?个人更喜欢使用int这样对于日期计算时比较好哦,下面我们一起来看到底那种会好些. int (1).4个字节存储,INT的长度是4个字节,存储空间上比datatime少,int索引存储空间也相对较小,排序和查询效率相对较高一点点 (2)可读性极差,无法直观的看到数据,可能让你很恼火 TIMESTAMP (1)4个字节储存 (2)值以UTC格式保存 (3)时区转化 ,存储时对当前的时区进行转换,检索时再转换回当前的时

MYSQL 时间日期函数的用法

mysql日期时间函数比较多,总结一些比较重要的函数,now(),curdate(),curtime(),date_add(),datediff(),date_format(),下面详细介绍其用法和输出的结果. 1,now() select now() 输出 2018-10-1 12:00:00 2,curdate() select curdate() 输出 2018-10-1 3,curtime() select curtime() 输出 12:00:00 4, date_add() sele