Mysql的常用函数操作二
三、日期函数
date_format(date,format)
根据format字符串格式化date值
(在format字符串中可用标志符:
%m 月名字(january……december)
%w 星期名字(sunday……saturday)
%d 有英语前缀的月份的日期(1st, 2nd, 3rd, 等等。)
%Y年, 数字, 4 位
%y 年, 数字, 2 位
%a 缩写的星期名字(sun……sat)
%d 月份中的天数, 数字(00……31)
%e 月份中的天数, 数字(0……31)
%m 月, 数字(01……12)
%c 月, 数字(1……12)
%b 缩写的月份名字(jan……dec)
%j 一年中的天数(001……366)
%H 小时(00……23)
%k 小时(0……23)
%h 小时(01……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 一个星期中的天数(0=sunday ……6=saturday )
%u 星期(0……52), 这里星期天是星期的第一天
%u 星期(0……52), 这里星期一是星期的第一天
%% 字符% )
-> select date_format('1997-10-04 22:23:12','%Y%m%d %H%i%s');
-> 19971004 222312
curdate() current_date()
以'yyyy-mm-dd'或yyyymmdd格式返回当前日期值(根据返回值所处上下文是字符串或数字)
-> select curdate();
-> 2020-05-26
-> select current_date() ;
-> 2020-05-26
curtime() current_time()
以'hh:mm:ss'或hhmmss格式返回当前时间值(根据返回值所处上下文是字符串或数字)
-> select curtime();
-> 21:07:20
now() sysdate() current_timestamp()
以'yyyy-mm-dd hh:mm:ss'或yyyymmddhhmmss格式返回当前日期时间(根据返回值所处上下文是字符串或数字)
-> select now();
-> 2020-05-26 21:07:53
-> select sysdate();
-> 2020-05-26 21:07:53
-> select current_timestamp();
-> 2020-05-26 21:07:53
unix_timestamp() unix_timestamp(date)
返回一个unix时间戳(从'1970-01-01 00:00:00'gmt开始的秒数,date默认值为当前时间)
-> select unix_timestamp();
-> 1590498602;
from_unixtime(unix_timestamp)
以'yyyy-mm-dd hh:mm:ss'或yyyymmddhhmmss格式返回时间戳的值(根据返回值所处上下文是字符串或数字)
-> select from_unixtime(1590498602);
-> 2020-05-26 21:10:02
from_unixtime(unix_timestamp,format)
以format字符串格式返回时间戳的值
-> select from_unixtime(1590498602,'%Y%m%d %H%i%s');
-> 2020-05-26 21:10:02
四、mysql的聚合函数
特点:
1.组函数,将字段当作一个组进行统计,可结合分组GROUP BY联合使用
2.不用GROUP BY,中间结果集中的所有行自动形成一组,然后计算组合数
3.每个组函数接收一个参数(字段名或者表达式) 统计结果中默认忽略字段为NULL的记录,不参与计算
4.要想列值为NULL的行也参与组函数的计算,必须使用IFNULL函数对NULL值做转换。
5.不允许出现嵌套 比如sum(max(…))
常用的聚合函数:
COUNT(*) 函数返回表中的记录数(强调表中)
COUNT(column_name) 函数返回指定列的值的数目(NULL 不计入):
SUM:函数返回数值列的总数(总额)。
AVG: 函数返回数值列的平均值。NULL 值不包括在计算中。
MAX:函数返回一列中的最大值。NULL 值不包括在计算中
MIN:函数返回一列中的最小值。NULL 值不包括在计算中