当数据库中的存储的时间是11位的时间戳, 先需要转化为日期格式:
from_unixtime(列名,format)
format 格式有:
%Y 年,数字, 4位
%y 年,数字, 2位
%M 月名字(January……December)
%m 月,数字(01……12)
%c 月,数字(1……12)
%b 缩写的月份名字(Jan……Dec)
%D 有英语前缀的月份的日期(1st, 2nd, 3rd...)
%d 月份中的天数,数字(00……31)
%e 月份中的天数,数字(0……31)
%H 小时(00……23) 24小时制
%k 小时(0……23)
%h 小时(01……12) 12小时制
%I 小时(01……12)
%l 小时(1……12)
%i 分钟,数字(00……59)
%r 时间,12小时(hh:mm:ss [AP]M)
%T 时间,24小时(hh:mm:ss)
%S 秒(00……59)
%s 秒(00……59)
%p AM或PM
%W 星期名字(Sunday……Saturday)
%a 缩写的星期名字(Sun……Sat)
%U 星期(0……52),这里星期天是星期的第一天
%u 星期(0……52),这里星期一是星期的第一天
例如查询表里用户的每天的做题次数:
select
count(列名) , date_format(from_unixtime(列名),'%Y-%m-%d') a
from 表名
group by a
当然,如果只是日期格式,也可以使用date函数:
select
count(列名) , date(from_unixtime(列名)) a
from 表名
group by a
查询出来的结果是一样的
查询当前时间时间戳: unix_timestamp(now())
查询某个时间的时间戳 unix_timestamp('2019-08-29 18:06:27')
------------------------------------------------
当数据库里存储的日期是: 年月日 时分秒
当前时间年月份 CURRENT_DATE