首頁 > 資料庫 > mysql教程 > mysql惯用的日期函数汇总

mysql惯用的日期函数汇总

WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWB
發布: 2016-06-07 16:23:59
原創
1122 人瀏覽過

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 "dayTime"
from	
  user_online_count_tbl
where
  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')
登入後複製

?

?

相關標籤:
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
最新問題
linux安裝mysql報錯
來自於 1970-01-01 08:00:00
0
0
0
mysql 升級後無法重新啟動mysql服務的問題
來自於 1970-01-01 08:00:00
0
0
0
MySQL停止進程
來自於 1970-01-01 08:00:00
0
0
0
phpstudy不能啟動mysql?
來自於 1970-01-01 08:00:00
0
0
0
centos下mysql啟動報錯
來自於 1970-01-01 08:00:00
0
0
0
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板