Datetime与Datestamp的区别

datetime与datestamp都是日期和时间的混合类型,它们之间的区别如下:

1、表示的取值范围不同,datatime的取值范围远远大于datestamp的取值范围
2、将NULL值插入到timestamp字段后,该字段的值实际上是MySQL服务器当前的日期和时间。
3、对于同一个timestamp类型的日期或时间,不同的时区显示结果不同。使用MySQL命令“ show variables like ‘time_zone';可以查看当前MySQL服务实例的时区,如图,”SYSTEM“表示MySQL时区与服务器主机的操作系统的时区一致。


4、当对包含timestamp数据的记录进行修改时,timestamp数据将自动更新为MySQL服务器当前的日期和时间。

场景描述datetime与datestamp的区别
1、  由于系统变量time_zone是会话系统变量,因此,下述MySQL代码要求在同一个MySQL会话中执行。使用create table语句在choose数据库中创建today表,执行结果是:“

use choose

Create table today

 T1 datetime

 T2 datestamp

;

2、  插入insert语句

Insert  into  today values now (), now ());

Insert  into  today values  now nullnull));

3、  首先查看当前MySQL服务实例的时区,然后使用select语句查询today表的所有记录;接着使用set time_zone=’+12:00’;命令临时地将时区设置为新西兰时区,即东12区,再次查看当前MySQL服务器实例时区,最后使用select语句查询today表的所有记录。

4、  Show variables like ‘time_zone’;

Select * from today;

Set  time_zone=’+12:00’;

Show variables like ‘time_zone’;

Select * from today;

结果:datetime字段中插入null值后,该字段的值就是null值。在timestamp字段插入null值后,该字段的值是MySQL服务器当前的日期。时区修改前后,t1字段的时区没有发生变化,然而t2字段的时间增加了4h,也就是说datetime字段的值不受时区的影响,而timestamp字段的值受到时区影响。

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/29272216/viewspace-1243727/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/29272216/viewspace-1243727/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值