MySQL日期函数datetime与timestamp的3大区别
发布:smiling 来源: PHP粉丝网 添加日期:2014-10-02 12:04:32 浏览: 评论:0
在MySQL中日期函数datetime与timestamp的区别有几个朋友会很详细的知道呢,下面小编来给大家总结一下mysql中datetime与timestamp 一些比较.
相同:显示格式一致: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.时区转化,存储时对当前的时区进行转换,检索时再转换回当前的时区.
timestamp列类型timestamp值可以从1970的某时的开始一直到2037年,精度为一秒,其值作为数字显示.
timestamp值显示尺寸的格式如下表所示:
- +-------------------+------------------------+
- | 列类型 | 显示格式 |
- | timestamp(14) | yyyymmddhhmmss |
- | timestamp(12) | yymmddhhmmss |
- | timestamp(10) | yymmddhhmm |
- | timestamp(8) | yyyymmdd |
- | timestamp(6) | yymmdd |
- | timestamp(4) | yymm | --phpfensi.com
- | timestamp(2) | yy |
- +-------------------+-------------------------+
“完整”timestamp格式是14位,但timestamp列也可以用更短的显示尺寸创造,最常见的显示尺寸是6、8、12、与14。
你可以在创建表时指定一个任意的显示尺寸,但是定义列长为0或比14大均会被强制定义为列长14.
列长在从1~13范围的奇数值尺寸均被强制为下一个更大的偶数.
列如:
- 定义字段长度 强制字段长度
- timestamp(0) -> timestamp(14)
- timestamp(15)-> timestamp(14)
- timestamp(1) -> timestamp(2)
- timestamp(5) -> timestamp(6)
所有的timestamp列都有同样的存储大小,使用被指定的时期时间值的完整精度(14位)存储合法的值不考虑显示尺寸.
不合法的日期,将会被强制为0存储.
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.)
方法一:
你也可以: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-03 17:39:05' and '2011-03-03 17:39:52';
方法三:可以讲datetime类型转换成date类型再进行比较,例如:convert(date,表名.datetime列名) >= convert(date,表名.datetime列名)
三种方法待求证,总之是不要用字符串这么直接比.
默认值:TIMESTAMP 默认值不为空,可以设置为默认当前时间,NULL DEFAULT NULL ON UPDATE CURRENT_TIMESTAMP.
datetime 默认值可以设置为空
Tags: MySQL日期函数 datetime timestamp
- 上一篇:linux设置mysql中文编码方法详解
- 下一篇:删除MySQL二进制日志具体方法
相关文章
- ·mysql时间日期函数例子(2014-09-23)
- ·mysql常用日期与时间函数详解(2014-10-02)
- ·Mysql存储日期类型用int、timestamp还是datetime?(2014-09-24)
- ·MySQL中datetime与timestamp用法比较(2014-10-03)
- ·mysqldump备份数据后,新插入数据的datetime出错的问题(2014-10-04)
- ·mysql中时间日期 datetime字段保存日期出现0000-00-00(2014-10-12)
- ·mysql中TIMESTAMP设置默认时间为当前时间(2014-09-23)
- ·mysql中单表多timestamp设置default问题(2014-09-24)
- ·mysql 5.5与5.6 timestamp 字段 DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIM(2014-09-27)
- ·MySQL中CURRENT_TIMESTAMP数据类型详解(2014-10-08)
- ·MySQL的timestamp类型自动更新(2014-10-10)
- ·mysql怎么获取时间戳的函数UNIX_TIMESTAMP(2014-10-10)
推荐文章
热门文章
最新评论文章
- 写给考虑创业的年轻程序员(10)
- PHP新手上路(一)(7)
- 惹恼程序员的十件事(5)
- PHP邮件发送例子,已测试成功(5)
- 致初学者:PHP比ASP优秀的七个理由(4)
- PHP会被淘汰吗?(4)
- PHP新手上路(四)(4)
- 如何去学习PHP?(2)
- 简单入门级php分页代码(2)
- php中邮箱email 电话等格式的验证(2)