mysql 中 datetime和 timestamp的区别

我看书上是说存储的格式不同,前者是1999-03-12 12:30:12这种类型的,后者则是19990312123012这样子的,可是我实际操作时貌似timestamp也是datetime那种显示方式呢,求解

DATETIME、DATE和TIMESTAMP,除了DATE用来表示一个不带时分秒的是日期,另外两个都带时分秒。TIMESTAMP还可以精确到毫秒。

    TIMESTAMP列必须有默认值,默认值可以为“0000-00-00 00:00:00”,但不能为null。

    TIMESTAMP列不可以设置值,只能由数据库自动去修改。

    一个表可以存在多个TIMESTAMP列,但只有一个列会根据数据更新而改变为数据库系统当前值。因此,一个表中有多个TIMESTAMP列是没有意义,实际上一个表只设定一个TIMESTAMP列。

MySQL是一个关系型数据库管理系统,由瑞典MySQL AB 公司开发,目前属于 Oracle 旗下产品。MySQL 最流行的关系型数据库管理系统,在 WEB 应用方面MySQL是最好的 RDBMS (Relational Database Management System,关系数据库管理系统) 应用软件之一。

MySQL是一种关联数据库管理系统,关联数据库将数据保存在不同的表中,而不是将所有数据放在一个大仓库内,这样就增加了速度并提高了灵活性。

MySQL所使用的 SQL 语言是用于访问数据库的最常用标准化语言。MySQL 软件采用了双授权政策,它分为社区版和商业版,由于其体积小、速度快、总体拥有成本低,尤其是开放源码这一特点,一般中小型网站的开发都选择 MySQL 作为网站数据库。

由于其社区版的性能卓越,搭配 PHP 和 Apache 可组成良好的开发环境。

温馨提示:答案为网友推荐,仅供参考
第1个回答  2019-05-16
创建一张表,一种有3个字段:
编号
datetime_info
timestamp_info
datetime_info字段的类型datetime
范围在1000---9999之间
保存时间:1000-11-30
20:42:01没有提示报错
timestamp_info的字段类型是timestamp
范围在1970
--2037
之间
比如:1900-11-30
20:42:01
就会提示报错
如果输入:1970-11-30
20:42:01
就不会报错了
第2个回答  2011-04-07
timestamp有时间范围的限制,目前1970年之前月2037年之后的时间都不能使用timestamp.
而dateTime 支持的范围是'1000-01-01 00:00:00'到'9999-12-31 23:59:59'
第3个回答  2021-03-15
timestamp:占用 4 字节,内部实现是新纪元时间(1970-01-01 00:00:00)以来的秒,那么这种格式在展示给用户的时候就需要做必要的时区转换才能得到正确数据。
第4个回答  推荐于2018-02-23
DATETIME
日期和时间的组合。支持的范围是'1000-01-01 00:00:00'到'9999-12-31 23:59:59'。MySQL以'YYYY-MM-DD HH:MM:SS'格式显示DATETIME值,但允许使用字符串或数字为DATETIME列分配值。
TIMESTAMP[(M)]
时间戳。范围是'1970-01-01 00:00:00'到2037年。
TIMESTAMP列用于INSERT或UPDATE操作时记录日期和时间。如果你不分配一个值,表中的第一个TIMESTAMP列自动设置为最近操作的日期和时间。也可以通过分配一个NULL值,将TIMESTAMP列设置为当前的日期和时间。

TIMESTAMP值返回后显示为'YYYY-MM-DD HH:MM:SS'格式的字符串,显示宽度固定为19个字符。如果想要获得数字值,应在TIMESTAMP 列添加+0。

注释:MySQL 4.1以前使用的TIMESTAMP格式在MySQL 5.1中不支持;关于旧格式的信息参见MySQL 4.1 参考手册。本回答被提问者和网友采纳