datetime 显示为'YYYY-MM-DD HH:MM:SS'格式,范围为'1000-01-01 00:00:00'到'9999-12-31 23:59:59'

date 显示为'YYYY-MM-DD'格式,范围为'1001-01-01'到'9999-12-31'

timestamp 范围从'1970-01-01 00:00:01'UTC 到'2038-01-09 03:14:07'UTC

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

datetime和timestamp比较

datetime和timestamp 相同点:

显示格式相同,TIMESTAMP列的显示格式与DATETIME列相同。换句话说,显示宽度固定在19字符,并且格式为YYYY-MM-DD HH:MM:SS。

datetime和timestamp不同点:

1)范围

datetime 以'YYYY-MM-DD HH:MM:SS'格式检索和显示DATETIME值。支持的范围为'1000-01-01 00:00:00'到'9999-12-31 23:59:59'TIMESTAMP值不能早于1970或晚于2037.

2)储存

TIMESTAMP

1.4个字节储存(Time stamp value is stored in 4 bytes)

2.值以UTC格式保存( it stores the number of milliseconds)

3.时区转化 ,存储时对当前的时区进行转换,检索时再转换回当前的时区。

datetime

1.8个字节储存(8 bytes storage)

2.实际格式储存(Just stores what you have stored and retrieves the same thing which you have stored.)

3.与时区无关(It has nothing to deal with the TIMEZONE and Conversion.)

在一个表里面的timestamp字段只能有下面4种定义:

1). 是default current_timestamp

插入时系统自动赋值,插入时若在SQL 语句中指定该字段的值,则用SQL语句中的指定值。

修改时时间值不自动改变,但可以在SQL语句中指定其值。

2). 是on update current_timestamp

插入时系统不自动赋值(字段为“零”值),但可以在SQL语句中指定该字段的值。

修改时,系统自动赋值,但若SQL语句中指定其值,则用SQL语句中的指定值。

3).两个都有default current_timestamp on update current_timestamp

如果timestamp后面啥都不写,也相当于2个都有。

插入修改时系统自动赋值,SQL语句中若指定,则用SQL语句中的指定值。

4).如果default 后面写个常数,如default 20090101010000,那么插入时即为这个值。其他与上面类似。

另外,一个表里面,如果想定义第2个timestamp字段,而且想让第2个字段有系统自动修改的机制,那么之前的那个字段一定要赋予default 常数(即上面第4点),然后,再给这个新的timestamp字段进行如上abc的定义,区别是这个新的timestamp字段不能后面啥不都写,如果啥都不写,那么插入和修改时系统不会自动赋值。依次类推,再想定义第3个timestamp字段,而且想让第3个字段有系统自动修改的机制,那么之前第2个timestamp字段一定要赋予default 常数(即上面第4点),然后,再给这个新的timestamp字段进行如上abc的定义,区别跟前面一样。

上述current_timestamp还可以用它的同义词 current_timestamp(),now(),localtime,localtime(),localtimestamp,localtimestamp() 代替。

timestamp字段缺省不允许空值,如果指定它的值为null,实际上就是用当前时间值赋给他了。

但是,可以这样定义:

col1 timestamp null default null, 注释:该字段可以为null,插入时缺省就是null,如果赋值null,那也真是null而不是当前时间值。

col2 timestamp null default 0, 注释:该字段可以null,插入时缺省为0,如果赋值null,那也真是null而不是当前时间值。

如果MySQL服务器以MAXDB SQL模式运行,那么timestamp等同于datetime类型,前面说的timestamp类型的所有描述都消失。

mysql 时间格式比较_mysql 日期类型 比较相关推荐

  1. mysql时间格式函数_MySQL时间格式函数

    每周第一天: SELECT CURDATE(), DATE_ADD(CURDATE(),INTERVAL -WEEKDAY(CURDATE()) DAY); 每月第一天: SELECTCURDATE( ...

  2. mysql什么格式转换_MySQL日期格式转换

    DATE_FORMAT(date,format):根据参数对date进行格式化.1 2 3 4SELECT DATE_FORMAT('2016-01-16 22:23:00','%W %M %Y') ...

  3. mysql时间函数总结_MySQL 日期时间函数常用总结

    获得当前日期+时间(date + time)1.1    函数:now() 相关函数:current_timestamp(),localtime(),localtimestamp() 举例说明: 2. ...

  4. mysql时间格式和Java时间格式对应

    mysql时间格式和Java时间格式对应 在 MySQL 中有两种存储时间的数据类型 DATETIME 和 TIMESTAMP ,它们在数据库实际应用中,各有各的优势和劣势.本文将详细详解两个数据类型 ...

  5. 把一个中文日期时间格式字符串转为日期时间

    MS SQL Server2012中把一个中文日期时间格式字符串转为日期时间. 如: DECLARE @d NVARCHAR(20) = N'2012年08月12日14时36分48秒' SELECT  ...

  6. Mysql 时间格式默认空串 ‘0000-00-00 00:00:00‘ select抛出异常的解决方法

    Mysql 时间格式默认空串 '0000-00-00 00:00:00' select抛出异常的解决方法 参考文章: (1)Mysql 时间格式默认空串 '0000-00-00 00:00:00' s ...

  7. mysql 时间格式转换年月日时分秒

    mysql 时间格式转换 SELECT DATE_FORMAT(NOW(), '%Y-%m-%d %H:%i:%s');

  8. mysql时间格式秒微秒_mysql 时间类型精确到毫秒、微秒及其处理

    下面是转载的关于MySQL毫秒.微秒精度时间处理的两段篇章,留给自己和供大家参考~~ 一.MySQL 获得毫秒.微秒及对毫秒.微秒的处理 MySQL 较新的版本中(MySQL 6.0.5),也还没有产 ...

  9. mysql带中文日期转换_【MySQL】日期时间格式转换_MySQL

    bitsCN.com [MySQL]日期时间格式转换 这里是一个使用日期函数的例子.下面的查询选择了所有记录,其date_col的值是在最后30天以内: www.bitsCN.com mysql> ...

最新文章

  1. @Bean 与@Component的区别
  2. 谷歌首席科学家:搞研究的痛苦,搞工程的人不懂
  3. php 的包管理工具 composer
  4. 怎么挪动_你真的懂iPhone上的小圆点怎么玩吗
  5. vs2010 问题 LINK : fatal error LNK1123: 转换到 COFF 期间失败: 文件无效或损坏
  6. MAC + Tomcat——部署Web项目时Tomcat启动成功,但部署的Web项目404错误
  7. 数据结构实验之图论四:迷宫探索_用图机器学习探索 A 股个股相关性变化
  8. Mac Redis安装入门教程
  9. 未检测到其他显示器_同维工控机显示器显示器没反应维修技术精湛
  10. java+connect+time+out_聊聊jdk httpclient的connect timeout异常
  11. 如何加强云端的SSH安全性 TechTarget中国原创内容,原文链接:http://www.searchcl
  12. Alias Piping Solutions系列工厂设计软件
  13. Docker视频教程 之 熟悉docker-machine及docker常用命令 - 知识林
  14. IT 工作者如何写交接文档
  15. Word-去掉标题前面的小黑点
  16. 2020-12-3background-color对div元素不起作用
  17. 关于@Result注解的说明
  18. python画矢量图_使用基于matplotlib的SciencePlots绘制精美图表
  19. Ibatis.net + Npgsql +PostgreSql 多线程“Timeout while getting a connection from pool.”
  20. 蚂蚁金服有哪些金融特色的机器学习技术?

热门文章

  1. Vscode 调试 python
  2. 联通拟竞投香港3G牌照
  3. 客户端没有管理员权限如何安装软件
  4. Intel官宣两大全新CPU 一性能猛增8.8倍!
  5. APM飞控学习之路:5 串口概述与收发调试
  6. html代码设置span字体颜色,怎么用span css设置div内部分字体颜色?
  7. Linux常用文本编辑工具及常用指令
  8. 判断一段文字中是否包含某些关键词
  9. 微信 - 公众号开发基础配置
  10. SQL Server 管理系列课程-王进-专题视频课程