3.日期函数
①now() curdate() curtime() 返回当前的日期时间、日期、时间
SELECT NOW();----2018-08-19 11:29:26
SELECT CURDATE();----2018-08-19
SELECT CURTIME();----11:29:26
②year(),month(),day() ,hour(),minute(),second()获取年月日时分秒
如 SELECT LPAD(MONTH(NOW()),2,'0'); ----08
③str_to_date(),将日期格式的字符按照指定格式进行解析然后返回日期
SELECT STR_TO_DATE('19/08/2018','%d/%m/%Y'); --- 2018-08-19 ,将19/08/2018按照%d/%m/%Y格式进行解析,返回日期
对于格式要求:
%Y 四位年份
%y 两位年份
%m 月份(01,02,03....11,12)
%c 月份(1,2,3....11,12)
%d 日 (01,02....)
%H 小时 (24小时制)
%h 小时 (12小时制)
%i 分钟(00,02,03....59)
%s 秒(00,01...59)
④date_format 将日期转换为时间格式的字符串
SELECT DATE_FORMAT(NOW(),'%Y年%m月%d日')------- 2018年08月19日
4.流程判断函数
①if(e1,e2,e3) e1为条件表达式,如果为true,返回e2,否则返回e3
SELECT IF(1=2,1,2); --- 2 SELECT IF(1=1,1,2);-----1
②case
用法:case when 表达式 then 结果 when 表达式 then 结果 else 结果 end
CASE
WHEN ac.`isNecessary` = 0 THEN '否'
WHEN ac.`isNecessary` = 1 THEN '是'
ELSE '未知'
END AS isNecessary
或者
CASE ac.`isNecessary`
WHEN 0 THEN '否'
WHEN 1 THEN '是'
ELSE '未知'
END AS isNecessary
③IFNULL(e1,e2) 如果e1不为null,返回e1,否则返回e2
④ISNULL(e1) ,如果e1为null,则返回1,否则返回0
⑤NULLIF(expr1,expr2) 如果expr1 = expr2 成立,那么返回值为NULL,否则返回值为expr1
还有一些其他的函数,如avg(),sum(),count(),max()等一般和分组group一块使用。