#日期函数#now 返回当前系统日期+时间SELECTnow();#curdate 返回当前系统日期,不包含时间SELECT CURDATE();#curtime 返回当前时间,不包含日期SELECT CURTIME();#可以获取指定的部分,年,月,日,小时,分钟,秒SELECTYEAR(NOW()) 年;SELECTMONTH(NOW()) 月;SELECT MONTHNAME(NOW()) 日;# str_to_date 将字符通过指定的格式转换日期SELECT STR_TO_DATE('1998-3-3','%Y-%c-%d')AS out_put;#查询入职日期为1992-4-3的员工信息SELECT*FROM employees WHERE hiredate ='1992-4-3';#date_format 将日期转换成字符SELECT DATE_FORMAT(NOW(),'%y年%m月%d日')AS out_put;#查询有奖金的员工名和入职日期(XX月XX日 XX年)SELECT last_name,DATE_FORMAT(hiredate,'%m月/%d日 %y年') 入职日期
FROM employees
WHERE commission_pct ISNOTNULL;
#5.流程控制函数# 1.if函数: if else SELECTIF(10<5,'大','小');SELECT last_name,commission_pct,IF(commission_pct ISNULL,'没奖金呵呵','有奖金 哈哈') 备注
FROM employees;# 2.case 函数的使用:switch case 的效果/*
case 要判断的字段或表达式
when 常量1 then 要显示的值1或语句1;
when 常量2 then 要显示的值2或语句2;
...
else 要显示的值n或语句n;
end
*/#案例 /*
查寻员工的工资,要求
部门号=30,显示的工资为1.1倍
部门号=40,显示的工资为1.2倍
部门号-50,显示的工资为1.3倍
其他部门,显示的工资为原工资
*/SELECT salary 原始工资, department_id,CASE department_id
WHEN30THEN salary*1.1WHEN40THEN salary*1.2WHEN50THEN salary*1.3ELSE salary
ENDAS 新工资
FROM employees;