MySQL中datetime与timestamp的异同点

相同

显示

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

不同

范围

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

储存

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.)

实例对比

现在我来做个时区对他们的影响。

1.先插入一个数据insert into `t8` values(now(), now());

2.改变客户端时区(东9区,日本时区)。

3.再次显示插入的数据,变化了,timestamp类型的数据 增加了 1个小时

时间: 2025-01-31 05:49:40

MySQL中datetime与timestamp的异同点的相关文章

MySQL中datetime与timestamp用法比较

区别对比 储存 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 sa

mysql解决datetime与timestamp精确到毫秒的问题

CREATE TABLE `tab1` (`tab1_id` VARCHAR(11) DEFAULT NULL,`create` TIMESTAMP(3) NULL DEFAULT NULL,`create2` DATETIME(3) DEFAULT NULL) ENGINE=INNODB DEFAULT CHARSET=utf8 SELECT * FROM tab1;   TIMESTAMP(3)与 DATETIME(3)意思是保留3位毫秒数 TIMESTAMP(6)与 DATETIME(6)

mysql中datetime比较大小问题 (转的)

方法一:   你也可以:select * from t1 where unix_timestamp(time1) > unix_timestamp('2011-03-03 17:39:05') and unix_timestamp(time1) < unix_timestamp('2011-03-03 17:39:52');就是用unix_timestamp函数,将字符型的时间,转成unix时间戳.个人觉得这样比较更踏实点儿.   方法二:   time1 between '2011-03-0

数据库-java中Date类型如何与mysql中的datetime类型联系

问题描述 java中Date类型如何与mysql中的datetime类型联系 我在Mysql中建了一个datetime类型的数据 然后想在java中用Date类型来获取当前时间(变量名为inTime)并添加到数据库中 构造了一个函数,在传参数的时候应该怎么传, 还是到底是Import java.util.Date还是import java.sql.Date 并且我希望的时间格式为:2016-01-04 21:09:23 构造函数这样写对吗 public CheckIn( java.sql.Dat

MySQL 中你应该使用什么数据类型表示时间?

当你需要保存日期时间数据时,一个问题来了:你应该使用 MySQL 中的什么类型?使用 MySQL 原生的 DATE 类型还是使用 INT 字段把日期和时间保存为一个纯数字呢? 在这篇文章中,我将解释 MySQL 原生的方案,并给出一个最常用数据类型的对比表.我们也将对一些典型的查询做基准测试,然后得出在给定场景下应该使用什么数据类型的结论. 如果你想直接看结论,请翻到文章最下方. 原生的 MySQL Datetime 数据类型 Datetime 数据表示一个时间点.这可以用作日志记录.物联网时间

Mysql中的Datetime和Timestamp比较_Mysql

mysql中用于表示时间的三种类型date, datetime, timestamp (如果算上int的话,四种) 比较容易混淆,下面就比较一下这三种类型的异同 相同点 都可以用于表示时间 都呈字符串显示 不同点 1.顾名思义,date只表示'YYYY-MM-DD'形式的日期,datetime表示'YYYY-MM-DD HH:mm:ss'形式的日期加时间,timestamp与datetime显示形式一样. 2.date和datetime可表示的时间范围为'1000-01-01'到'9999-12

MySQL中的datetime与timestamp比较

文将通过实例比较MySQL中的datetime与timestamp,虽然这两种方法其实表示同一种类型,但还是有一定的区别. 相同 显示 TIMESTAMP列的显示格式与DATETIME列相同.换句话说,显示宽度固定在19字符,并且格式为YYYY-MM-DD HH:MM:SS. 不同 范围 datetime 以'YYYY-MM-DD HH:MM:SS'格式检索和显示DATETIME值.支持的范围为'1000-01-01 00:00:00'到'9999-12-31 23:59:59'TIMESTAM

Python中实现对Timestamp和Datetime及UTC时间之间的转换_python

Python项目中很多时候会需要将时间在Datetime格式和TimeStamp格式之间转化,又或者你需要将UTC时间转化为本地时间,本文总结了这几个时间之间转化的函数,供大家参考. 一.Datetime转化为TimeStamp  def datetime2timestamp(dt, convert_to_utc=False): ''' Converts a datetime object to UNIX timestamp in milliseconds. ''' if isinstance(

mysql中TIMESTAMP设置默认时间为当前时间

很多时候,为了简单,我们在设计数据表的时候,都需要设置时间字段为当前时间.可是MySQL 中,默认值无法使用函数,也就是你无法设置某一列,默认值是 NOW () 这样的处理.那怎么办呢? TIMESTAMP 数据类型.插入的时候,忽略该列即可.  代码如下 复制代码 dt TIMESTAMP /*等价于*/ dt TIMESTAMP  default CURRENT_TIMESTAMP  ON UPDATE CURRENT_TIMESTAMP   create table testB (   i