欢迎来到代码驿站!

Mysql

当前位置:首页 > 数据库 > Mysql

Mysql中时间戳转为Date的方法示例

时间:2021-07-13 08:22:56|栏目:Mysql|点击:

前言

在工作中遇到一个情况:

日志系统的表中,时间字段存储的是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()函数(DATE_FORMAT(data,format) 函数用于以不同的格式显示日期/时间数据)和FROM_UNIXTIME()来进行转换:

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的中文数据按拼音排序的2个方法

栏    目:Mysql

下一篇:mysql5.7.13 环境搭建教程(解压缩版)

本文标题:Mysql中时间戳转为Date的方法示例

本文地址:http://www.codeinn.net/misctech/156763.html

推荐教程

广告投放 | 联系我们 | 版权申明

重要申明:本站所有的文章、图片、评论等,均由网友发表或上传并维护或收集自网络,属个人行为,与本站立场无关。

如果侵犯了您的权利,请与我们联系,我们将在24小时内进行处理、任何非本站因素导致的法律后果,本站均不负任何责任。

联系QQ:914707363 | 邮箱:codeinn#126.com(#换成@)

Copyright © 2020 代码驿站 版权所有