手机浏览 RSS 2.0 订阅 膘叔的简单人生 , 腾讯云RDS购买 | 超便宜的Vultr , 注册 | 登陆
浏览模式: 标准 | 列表Tag:unix_timestamp

两个比较常用的MySQL时间函数

这是来自iOrange.cc的文章,主要就讲了两个可能会被常用的时间函数。内容如下:

按时间搜索数据在mysql里应该是用的比较频繁的了。

iOrange系统里的时间都是按:xxxx-xx-xx xx:xx:xx这种格式存放的,大多数时候这个都没问题,但是,当你想使用其他格式来显示数据时就悲剧了,例如你想显示成 10/04/01 21:20 这种就很悲剧-__-,所以强烈建议保存时间戳的时候尽量存储一个UNIX时间戳,这样以后就方便很多了^_^

回归正题,第一个时间函数是:UNIX_TIMESTAMP,这个函数可以将xxxx-xx-xx xx:xx:xx这种格式的时间转换成一个unix时间戳格式的数字。例如下面那条语句:
update bookposts set lastpost = UNIX_TIMESTAMP(createdate) 这样就能将createdate字段上的时间更新到lastpost上去了。

第二个函数则跟第一个刚好相反:FROM_UNIXTIME,这个函数可以将一个UNIX时间戳转换成xxxx-xx-xx xx:xx:xx这种格式。用法大致如下:
SELECT COUNT(*) AS `newmembers` FROM `cdb_members` WHERE FROM_UNIXTIME(regdate, ‘%Y-%m-%d’) = ‘2010-04-01′”

--EOF--
不过,个人认为还是采用:xxxx-xx-xx xx:xx:xx比较好,这是因为,时间戳和这种日期格式在数据库里存储所占的字节都是一样的,而日期格式却没有1970~2038年这个限制。在计算时间区间的时候,用Between和and时,对于日期格式会更加方便,而时间戳则需要多计算一次。

参考:

1.Mysql时间函数 http://neatstudio.com/show-443-1.shtml

2.用TIMESTAMP类型取代INT和DATETIME[转] http://neatstudio.com/show-150-1.shtml

3.精通MYSQL数据库——连载八 http://neatstudio.com/show-263-1.shtml

 

Tags: from_unixtime, unix_timestamp