MySQL(5.5)所支持的日期时间类型有:DATETIME、 TIMESTAMP、DATE、TIME、YEAR。

几种类型比较如下:

日期时间类型 占用空间 日期格式 最小值 最大值 零值表示
 DATETIME  8 bytes  YYYY-MM-DD HH:MM:SS  1000-01-01 00:00:00 9999-12-31 23:59:59  0000-00-00 00:00:00
 TIMESTAMP  4 bytes  YYYY-MM-DD HH:MM:SS  19700101080001 2038 年的某个时刻 00000000000000
 DATE  4 bytes  YYYY-MM-DD 1000-01-01  9999-12-31  0000-00-00
 TIME  3 bytes  HH:MM:SS  -838:59:59 838:59:59  00:00:00
 YEAR  1 bytes  YYYY 1901  2155  0000

DATETIME

DATETIME 用于表示 年月日 时分秒,是 DATE 和 TIME 的组合,并且记录的年份(见上表)比较长久。如果实际应用中有这样的需求,就可以使用 DATETIME 类型。

TIMESTAMP

--TIMESTAMP 用于表示 年月日 时分秒,但是记录的年份(见上表)比较短暂。

--TIMESTAMP 和时区相关,更能反映当前时间。当插入日期时,会先转换为本地时区后再存放;当查询日期时,会将日期转换为本地时区后再显示。所以不同时区的人看到的同一时间是  不一样的。

--表中的第一个 TIMESTAMP 列自动设置为系统时间(CURRENT_TIMESTAMP)。当插入或更新一行,但没有明确给 TIMESTAMP 列赋值,也会自动设置为当前系统时间。如果表中有第二个 TIMESTAMP 列,则默认值设置为0000-00-00 00:00:00。

--TIMESTAMP 的属性受 Mysql 版本和服务器 SQLMode 的影响较大。

-如果记录的日期需要让不同时区的人使用,最好使用 TIMESTAMP。

DATE

DATE 用于表示 年月日,如果实际应用值需要保存 年月日 就可以使用 DATE。

TIME

TIME 用于表示 时分秒,如果实际应用值需要保存 时分秒 就可以使用 TIME。

YEAR

YEAR 用于表示 年份,YEAR 有 2 位(最好使用4位)和 4 位格式的年。 默认是4位。如果实际应用只保存年份,那么用 1 bytes 保存 YEAR 类型完全可以。不但能够节约存储空间,还能提高表的操作效率。

-----------------------

The DATE, DATETIME, and TIMESTAMP types are related. This section describes their characteristics, how they are similar, and how they differ. MySQL recognizes DATE, DATETIME, and TIMESTAMP values in several formats. For the DATE and DATETIME range descriptions, “supported” means that although earlier values might work, there is no guarantee.

The DATE type is used for values with a date part but no time part. MySQL retrieves and displays DATE values in 'YYYY-MM-DD' format. The supported range is '1000-01-01' to '9999-12-31'.

The DATETIME type is used for values that contain both date and time parts. MySQL retrieves and displays DATETIME values in 'YYYY-MM-DD HH:MM:SS' format. The supported range is '1000-01-01 00:00:00' to '9999-12-31 23:59:59'.

The TIMESTAMP data type is used for values that contain both date and time parts. TIMESTAMP has a range of '1970-01-01 00:00:01' UTC to '2038-01-19 03:14:07' UTC.

A DATETIME or TIMESTAMP value can include a trailing fractional seconds part in up to microseconds (6 digits) precision. In particular, any fractional part in a value inserted into a DATETIME or TIMESTAMP column is stored rather than discarded. With the fractional part included, the format for these values is 'YYYY-MM-DD HH:MM:SS[.fraction]', the range for DATETIME values is '1000-01-01 00:00:00.000000' to '9999-12-31 23:59:59.999999', and the range for TIMESTAMP values is '1970-01-01 00:00:01.000000' to '2038-01-19 03:14:07.999999'. The fractional part should always be separated from the rest of the time by a decimal point; no other fractional seconds delimiter is recognized. For information about fractional seconds support in MySQL.

The TIMESTAMP and DATETIME data types offer automatic initialization and updating to the current date and time. For more information.

MySQL converts TIMESTAMP values from the current time zone to UTC for storage, and back from UTC to the current time zone for retrieval(TIMESTAMP可以做时区转换). (This does not occur for other types such as DATETIME.) By default, the current time zone for each connection is the server's time. The time zone can be set on a per-connection basis. As long as the time zone setting remains constant, you get back the same value you store. If you store a TIMESTAMP value, and then change the time zone and retrieve the value, the retrieved value is different from the value you stored. This occurs because the same time zone was not used for conversion in both directions. The current time zone is available as the value of the time_zone system variable.

Invalid DATE, DATETIME, or TIMESTAMP values are converted to the “zero” value of the appropriate type ('0000-00-00' or '0000-00-00 00:00:00'). 

最新文章

  1. 满堂红CIO邓劲翔:房屋中介突围
  2. Java中Runnable和Thread的区别
  3. 【代码笔记】iOS-标题2个图标,点击的时候,页面跳转
  4. java高薪之路__002_异常处理
  5. 简单DP(51nod 1092)
  6. JAVA RMI helloworld入门
  7. ASP.NET页面与IIS底层交互和工作原理详解
  8. LeetCode3 Longest Substring Without Repeating Characters
  9. C# 匿名方法及Lambda表达式
  10. DC-DC升压(BOOST)电路原理
  11. 李洪强iOS开发之零基础学习iOS开发【02-C语言】03-关键字、标识符、注释
  12. KnockoutJS(1)-数据模型
  13. Boost1.62+win7+VC2015编译
  14. asp.net DropDownList的AppendDataBoundItems属性
  15. 下一个ajax异步请求被挂起问题
  16. 【续】5年后,我们为什么要从 Entity Framework 转到 Dapper 工具?
  17. redis windows 安装流程
  18. 腾讯优秀 SDK 汇总
  19. ckeditor 在dwz里面使用
  20. 2.4 CSS定位

热门文章

  1. java.util.ConcurrentModification并发修改异常
  2. java中String的内存位置
  3. 你想了解的轮询、长轮询和websocket都在这里了
  4. ps -ef和ps aux的区别
  5. windows下rabbitmq(架构师必备神器)集群搭建
  6. Django学生管理系统添加学生时,报错Not Found: /POST
  7. PHP实现选择排序
  8. ShiroFilterFactoryBean分析
  9. Codeforces Beta Round #13 E. Holes (分块)
  10. Number Sequence HDU - 5014