`

选择优化的数据类型 (五)日期和时间类型

阅读更多

mysql提供了两种相似的数据类型:DATETIME和TIMESTAMP.对于很多应用,它们都能工作,但是在某些情况下,一种会好于另一种

DATETIME:

从1001到9999年,精度为秒。它把日期和时间封装到一个格式为YYYYMMDDHHMMSS的整数中,与时区无关。使用了8字节存储空间。

在默认情况下,mysql以一种可排序的,清楚的格式显示DATETIME值,例如2012-08-28 18:18:18。这种表示日期和时间的方式符合ANSI标准。


TIMESTAMP:

这和时间戳相同,只使用4个字节的存储空间,但它的范围比DATETIME小很多,1970到2038年。mysql提供了FROM_UNIXTIME()函数把Unix时间戳转换为日期,并提供了UNIX_TIMESTAMP()函数,把日期转换为Unix时间戳。


TIMESTAMP显示的值依赖于时区。mysql服务器,操作系统及客户端连接都有时区设置。


在默认情况下,如果插入的行没有定义TIMESTAMP的值,mysql就会把它设置为当前时间。在更新的时候,如果没有显式地定义TIMESTAMP列的值,mysql也会自动更新它。可以配置TIMESTAMP列的插入和更新行为。最后,TIMESTAMP列默认是NOT NULL,这和其他数据类型都不一样。


通常情况下应该使用TIMESTAMP,因为它比DATETIME更节约空间。有时人们把Unix的时间戳保存为整数值,但是这通常没有任何好处。因为这种格式处理起来不太方便。我们并不推荐它。


如果需要以秒以下的精度保存日期和时间?mysql当前没有适合的数据类型,但是可以使用自己的存储格式,可以使用BIGINT类型并且把它以毫秒的精度保存为时间戳格式,或者使用DOUBLE保存秒的分数部分。两种方法都不错。

分享到:
评论

相关推荐

    Mysql高性能学习笔记02

     优化数据类型,基本上是用在建表和修改表的场景上,整个优化数据类型这一话题说下来,基本上都是集中于:对于DB数据的高效存储和高效查询。在原生的Mysql中,数据类型大体上分为以下几种:整数类型、实数类型、...

    MySQL数据类型优化原则

    MySQL支持的数据类型很多,选择正确的数据类型对于高性能至关重要。下面几个简单的原则都有助于做出更好的选择。 更小的通常更好 应该尽量使用可以正确储存数据的最小数据类型。更小的数据类型通常更快,因为它们...

    解析MySQL中存储时间日期类型的选择问题

    一般应用中,我们用timestamp,datetime,int类型来存储时间格式: int(对应javaBean中的Integer或int) 1. 占用4个字节 2. 建立索引之后,查询速度快 3. 条件范围搜索可以使用使用between 4. 不能使用mysql提供...

    MySQL日期数据类型、时间类型使用总结

    MySQL 日期类型:日期格式、所占存储空间、日期范围 比较。 日期类型 存储空间 日期格式 日期范围 ———— ——— ——————— —————————————– datetime 8 bytes YYYY-MM-DD HH:MM:SS 1000...

    三种常用的MySQL 数据类型

    MySQL支持多种类型,大致可以分为三类:数值、日期/时间和字符串(字符)类型。 数值类型 MySQL支持所有标准SQL数值数据类型。 这些类型包括严格数值数据类型(INTEGER、SMALLINT、DECIMAL和NUMERIC),以及近似数值...

    MySQL 数据类型

    MySQL支持多种类型,大致可以分为三类:数值、日期/时间和字符串(字符)类型。 数值类型 MySQL支持所有标准SQL数值数据类型。 这些类型包括严格数值数据类型(INTEGER、SMALLINT、DECIMAL和NUMERIC),以及近似数值...

    SQLServer2008查询性能优化 2/2

    4.8.3 BIT数据类型列上的索引 136 4.8.4 作为一个查询处理的CREATE INDEX语句 136 4.8.5 并行索引创建 136 4.8.6 在线索引创建 137 4.8.7 考虑数据库引擎调整顾问 137 4.9 小结 137 第5章 数据库引擎调整顾问...

    MySQL学习第六天 学习MySQL基本数据类型

    MySQL中常用的的数据类型包括:数值类型、日期和时间类型和字符串类型等。  一、数值类型  MySQL支持所有标准SQL中的数值类型,其中包括严格数据类型(INTEGER、SMALLINT、DECIMAL、NUMBERIC),以及近似数值数据...

    Mysql获取当前日期的前几天日期的方法

    Mysql根据时间查询日期的优化技巧mysql 获取昨天日期、今天日期、明天日期以及前一个小时和后一个小时的时间解析MySQL中存储时间日期类型的选择问题JDBC中使用Java8的日期LocalDate和LocalDateTime操作mysql、...

    MYSQL数据库表结构优化方法详解

     选择合适的数据类型  1、使用可以存下你的数据的最小的数据类型  2、使用简单的数据类型。Int要比varchar类型在mysql处理上简单  3、尽可能的使用not null定义字段  4、尽量少用text类型,非用不可时最好考虑...

    交通运输数据技术 作业五 -基于共享单车出行数据的聚类分析

    - otime: 出发时间,表示共享单车出发的日期和时间,为字符类型(chr)。 - olgt: O点经度,表示出发地点的经度,为数值类型(num)。 - olat: O点纬度,表示出发地点的纬度,为数值类型(num)。 - dlgt: D点经度,...

    Elasticsearch(ES)多条件(日期,时段,时分,mac。。)过滤实现案例(6.3版本)

    Elasticsearch(ES)多条件过滤实现案例(6.3版本), 搜索过滤,对日期进行时分秒区间判断,多条件整合优化

    MySQL大厂2021最新面试题大集合.rar

    3. 支持多种数据类型:MySQL支持各种数据类型,包括整数、浮点数、日期时间、字符串、二进制等。每种数据类型都有自己独特的属性和限制。 4. 完善的索引和查询优化:MySQL提供了丰富的索引机制,可以加快数据访问和...

    MySQL最新2021年面试题附答案解析,大汇总.rar

    3. 支持多种数据类型:MySQL支持各种数据类型,包括整数、浮点数、日期时间、字符串、二进制等。每种数据类型都有自己独特的属性和限制。 4. 完善的索引和查询优化:MySQL提供了丰富的索引机制,可以加快数据访问和...

    MySQL最新2021年面试题大汇总,附答案.rar

    3. 支持多种数据类型:MySQL支持各种数据类型,包括整数、浮点数、日期时间、字符串、二进制等。每种数据类型都有自己独特的属性和限制。 4. 完善的索引和查询优化:MySQL提供了丰富的索引机制,可以加快数据访问和...

    MySQL最新2021年面试题,高级面试题及附答案解析.rar

    3. 支持多种数据类型:MySQL支持各种数据类型,包括整数、浮点数、日期时间、字符串、二进制等。每种数据类型都有自己独特的属性和限制。 4. 完善的索引和查询优化:MySQL提供了丰富的索引机制,可以加快数据访问和...

    MySQL高级面试题整理及答案.rar

    3. 支持多种数据类型:MySQL支持各种数据类型,包括整数、浮点数、日期时间、字符串、二进制等。每种数据类型都有自己独特的属性和限制。 4. 完善的索引和查询优化:MySQL提供了丰富的索引机制,可以加快数据访问和...

    MySQL高级面试题及答案,企业真面试题.rar

    3. 支持多种数据类型:MySQL支持各种数据类型,包括整数、浮点数、日期时间、字符串、二进制等。每种数据类型都有自己独特的属性和限制。 4. 完善的索引和查询优化:MySQL提供了丰富的索引机制,可以加快数据访问和...

    MySQL高级面试题,中级面试题,大汇总.rar

    3. 支持多种数据类型:MySQL支持各种数据类型,包括整数、浮点数、日期时间、字符串、二进制等。每种数据类型都有自己独特的属性和限制。 4. 完善的索引和查询优化:MySQL提供了丰富的索引机制,可以加快数据访问和...

Global site tag (gtag.js) - Google Analytics