`

MySQL 日期类型

 
阅读更多

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

在 MySQL 中创建表时,对照上面的表格,很容易就能选择到合适自己的数据类型。不过到底是选择 datetime 还是 timestamp,可能会有点犯难。这两个日期时间类型各有优点:datetime 的日期范围比较大;timestamp 所占存储空间比较小,只是 datetime 的一半。

另外,timestamp 类型的列还有个特性:默认情况下,在 insert, update 数据时,timestamp 列会自动以当前时间(CURRENT_TIMESTAMP)填充/更新。“自动”的意思就是,你不去管它,MySQL 会替你去处理。
 

建表的代码为:

create table t8 (
  `id1` timestamp NOT NULL default CURRENT_TIMESTAMP,
  `id2` datetime default NULL
);


一般情况下,我倾向于使用 datetime 日期类型。

两者之间的比较:

1. timestamp容易所支持的范围比timedate要小。 并且容易出现超出的情况

2.timestamp比较受时区timezone的影响以及MYSQL版本和服务器的SQL MODE的影响.


MySQL 时间类型:时间格式、所占存储空间、时间范围。
时间类型        存储空间      时间格式                 时间范围
------------ ---------   --------------------- -----------------------------------------
time           3 bytes   HH:MM:SS              -838:59:59          ~ 838:59:59

time 时间范围居然有这么大的范围,特别是 time 可以取负值,有点奇怪。后来,看了 MySQL 手册才知道这是为了满足两个日期时间相减才这样设计的。

select timediff('2000:01:31 23:59:59', '2000:01:01 00:00:00'); -- 743:59:59
select timediff('2000:01:01 00:00:00', '2000:01:31 23:59:59'); -- -743:59:59
select timediff('23:59:59', '12:00:00');                        -- 11:59:59

注意,timediff 的两个参数只能是 datetime/timestamp, time 类型的,并且这两个参数类型要相同。即:datetime/timestamp 和 datetime/timestamp 比较;time 和 time 相比较。

虽然 MySQL 中的日期时间类型比较丰富,但遗憾的是,目前(2008-08-08)这些日期时间类型只能支持到秒级别,不支持毫秒、微秒。也没有产生毫秒的函数。

分享到:
评论

相关推荐

    MySQL日期类型表达式参照表.xlsx

    有关"mysql日期时间相关函数纪要"一文中的截图参照可在下载此附件Excel进行获取!

    java与mysql日期类型的问题

    java和mysql日期的问题。通过java向mysql中插入datetime类型的数据: String sql = "INSERT INTO wp_posts ( post_date )VALUES(?)"; PreparedStatement pstmt = connection.prepareStatement(sql); Timestamp ...

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

    ### MySQL日期数据类型与时间类型使用总结 在MySQL数据库中,日期和时间是十分重要的数据类型,被广泛应用于各种业务场景之中。为了更好地理解和运用这些数据类型,本篇将对MySQL中的日期数据类型和时间类型进行...

    mysql的日期和时间函数.rar

    通过深入学习和实践这些MySQL日期和时间函数,开发者可以更有效地管理数据库中的日期和时间数据,创建出更加精确和复杂的查询语句。这个教程文档“mysql的日期和时间函数.doc”应该包含了详细解释和实例,帮助读者更...

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

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

    mysql 日期与时间的转换

    对于相反的操作——即从MySQL日期到Unix时间戳的转换,MySQL提供了一个名为`UNIX_TIMESTAMP()`的函数。该函数可以接受一个日期参数并返回对应的Unix时间戳值。 ##### 示例: ```sql SELECT UNIX_TIMESTAMP('2009-08...

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

    以下是关于MySQL日期和时间类型的详细说明: 日期类型: 1. **datetime**:占用8字节存储空间,格式为`YYYY-MM-DD HH:MM:SS`,支持的日期范围从1000-01-01 00:00:00到9999-12-31 23:59:59。datetime类型适用于存储...

    mysql日期函数时间函数及加减运算

    MySQL 日期函数和时间函数是 MySQL 中非常重要的函数,用于处理日期和时间数据类型。这些函数可以帮助开发者快速获得当前日期和时间、执行日期和时间相关的操作。 获得当前日期时间函数 MySQL 中有多种方式可以...

    Java数据类型和MySql数据类型对应一览

    在 MySql 中,日期时间类型对应的是 DATE、TIME、DATETIME、TIMESTAMP 等类型。其中,DATE 类型用于存储日期,TIME 类型用于存储时间,DATETIME 类型用于存储日期和时间,TIMESTAMP 类型用于存储时间戳。 布尔类型 ...

    mysql中int的日期格式处理

    总之,MySQL提供了丰富的日期处理函数,使得在整型和日期类型之间转换变得简单。理解并熟练运用这些函数,能极大地提高你在处理日期和时间数据时的效率和灵活性。在实际应用中,一定要根据数据的存储方式和需求选择...

    在mysql中将字符串日期转为日期型

    通过使用`STR_TO_DATE()`函数,可以在MySQL中轻松地将各种格式的字符串日期转换为日期类型,这对于处理复杂的日期数据非常有用。掌握该函数的用法可以帮助开发者更高效地管理数据库中的日期数据。

    2011年MySQL日期数据类型、MySQL时间类型使用总结.doc

    MySQL数据库在处理日期和时间数据时提供了多种数据类型,包括日期类型和时间类型,每种类型都有其特定的格式、存储空间占用以及适用范围。在选择适合的数据类型时,需要根据实际需求进行权衡。 首先,让我们来看看...

    mysql时间类型对应的java类型1

    MySQL数据库提供了多种时间类型来处理日期和时间数据: 1. **DATE**:这个类型仅存储日期,格式为'YYYY-MM-DD',不包含时间部分。在Java中,对应的类型是`java.sql.Date`,它表示没有时间部分的日期。 2. **TIME**...

    MySQL 日期和时间类型.pdf

    MySQL 是一个广泛使用的开源关系型数据库管理系统,其在处理日期和时间数据方面提供了多种数据类型。这些类型允许开发者准确地存储和操作日期、时间、日期时间以及持续时间等信息。以下是对MySQL中几种主要日期和...

    mysql数据类型转换

    - **日期类型** (`DATE`):表示日期值。 - **时间类型** (`TIME`):表示时间值。 - **日期时间类型** (`DATETIME`):表示日期和时间的组合值。 - **浮点数类型** (`DECIMAL`):表示固定精度的小数。 - **整数类型** ...

    mysql数据类型

    MySQL 数据类型是指在 MySQL 中存储数据的格式,包括整型、浮点型、定点型、字符串、日期时间型、枚举型等多种类型。下面将对 MySQL 数据类型进行详细的介绍。 整型 MySQL 中的整型包括 tinyint、smallint、...

    [数据库] MySQL基础知识之日期判断及添加排序序号1

    【MySQL日期判断】 在MySQL中,处理日期类型的数据是数据库操作中的常见任务。日期类型主要有两种:DATE和DATETIME。DATE类型仅存储日期,格式为YYYY-MM-DD;DATETIME则包含日期和时间,格式为YYYY-MM-DD HH:MM:SS...

    java到MySQL的日期操作

    将java中的Date类型存放进MySql数据库需要用到java.sql.Timestamp包,

    mysql时间转成数字-mysql日期转换和数字格式转换.pdf

    MySQL 中可以使用 STR_TO_DATE 函数将日期时间字符串转换为日期时间类型。例如,使用 `SELECT STR_TO_DATE('2009-06-05 12:00:00', '%Y-%m-%d %H:%i:%s')` 可以将字符串 '2009-06-05 12:00:00' 转换为日期时间类型。...

    Mysql中类型转换

    这个查询首先使用`STR_TO_DATE()`函数将字符串转换为日期类型,然后进行日期范围比较。通过这种方式,即使原始数据的类型不符合预期,我们也能够正确地获取到所需的结果。 #### 四、总结 通过对MySQL中类型转换...

Global site tag (gtag.js) - Google Analytics