在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
前言 在工作中遇到一个情况: 日志系统的表中,时间字段存储的是13位时间戳timestamp而不是日期数据,而在业务中,我们需要通过时间和ip来进行分组查询给定日期的数据. 当然你可以选择在业务层先将传入的日期转为时间戳,再去进行查询,但是既然mysql既然可以直接进行转换,那么省去在业务层的操作何乐而不为呢? 1.首先介绍一下mysql中将时间戳和日期互相转换的函数: 时间戳转换成日期FROM_UNIXTIME(): FROM_UNIXTIME(1429063399,'%Y-%m-%d %H:%i:%s') 如果不需要时分秒,'%Y-%m-%d'就好 上面例子中使用的是10位时间戳,若是13位时间戳需要/1000,如下: FROM_UNIXTIME(1429063399123/1000,'%Y-%m-%d %H:%i:%s') 日期转换为时间戳UNIX_TIMESTAMP(): UNIX_TIMESTAMP('2015-04-15') %Y年、%m月、%d日、%H时、%i分、%s秒最为常用 2.实际使用 在我实际使用中,我还将 DATE_FORMAT(FROM_UNIXTIME(DateTime/1000),'%Y-%m-%d') SELECT ip,DATE_FORMAT(FROM_UNIXTIME(timestamp/1000),'%Y-%m-%d') as date,count(*) FROM s_page where DATE_FORMAT(FROM_UNIXTIME(timestamp/1000),'%Y-%m-%d') = ? GROUP BY ip,DATE_FORMAT(FROM_UNIXTIME(timestamp/1000),'%Y-%m-%d') ?为占位符 总结 到此这篇关于Mysql中时间戳转为Date的文章就介绍到这了,更多相关Mysql时间戳转为Date内容请搜索极客世界以前的文章或继续浏览下面的相关文章希望大家以后多多支持极客世界! |
请发表评论