您好,欢迎访问一九零五行业门户网

mysql惯用的日期函数汇总

mysql常用的日期函数汇总 最近做统计时经常用到的几个mysql函数: 1. unix_timestamp()? 该函数返回1970到现在的秒数,括号内也可以带参数,即返回1970年到指定时间段的秒数,注意是秒数,常用java的兄弟们需要注意,因为java中的system.currenttimemillis()
mysql常用的日期函数汇总
最近做统计时经常用到的几个mysql函数:
1. unix_timestamp()?
该函数返回1970到现在的秒数,括号内也可以带参数,即返回1970年到指定时间段的秒数,注意是秒数,常用java的兄弟们需要注意,因为java中的system.currenttimemillis()返回的是毫秒数
?
2. date_format()
举一个例子 date_format(now(), '%y-%m-%d %h:%i:%s') 将当前时间转换成某种时间格式的字符串,当然now()函数的默认格式已经是 '%y-%m-%d %h:%i:%s'
?
3. from_unixtime()
from_unixtime(1390357150,'%y-%m-%d'); 将返回1970年到指定时间段的秒数,转换成固定的时间格式,
这个适用于后台日期存放的是秒数,前台展示时需要的是具体的某种日期的应用
?
4. current_date()
这个函数的作用是返回当前的日期,但是这个函数在日期做减法时是会有bug的,
以今天为例:
select current_date();
2014-01-24
我想知道今天以前的30天的日期
select current_date()-30;
20140094
显然不是我们想得到的值,经过测试发现当涉及到月份或年份的退位进位时就会出错
对于求今天之前的三十天,可以利用毫秒数做
select from_unixtime(unix_timestamp(current_date())-24*60*60*30,'%y-%m-%d');
哪位大神有更好的方法,欢迎指导
?
利用以上函数,就可以做简单的基于在线数量的统计,
相关表
? user_online_count_tbl
相关字段
? user_online_num(当前用户在线数)
? online_statistic_time(统计在线数时的时间)
?
?
5.基于最近10天的平均在线用户数统计
select sum(user_online_num)/count(online_statistic_time) as avg_online_num, from_unixtime(online_statistic_time,'%y-%m-%d') as daytimefrom user_online_count_tblwhere from_unixtime(online_statistic_time,'%y-%m-%d') = from_unixtime(unix_timestamp(current_date())-24*60*60*10,'%y-%m-%d')group by from_unixtime(online_statistic_time,'%y-%m-%d')
?
?
其它类似信息

推荐信息