MySQL学习笔记(4)
程序员文章站
2022-05-03 18:34:24
...
USE test;
SHOW TABLES;
SELECT NOW(); #获取当前时间,包括年月日时分秒(结果:2020-05-15 14:50:20)
SELECT CURRENT_TIME(); #获取当前时间,只有时分秒(结果:14:54:22)
SELECT CURRENT_DATE(); #获取当前时间,只有年月日(结果:2020-05-15)
#只获取entry_time的年份
SELECT employee_id,employee_name,YEAR(entry_time) FROM employee;
#只获取entry_time的月份
SELECT employee_id,employee_name,MONTH(entry_time) FROM employee;
格式符 | 功能 |
---|---|
%Y | 四位的年份 |
%y | 两位的年份 |
%m | 月份(01,02,…,11,12) |
%c | 月份(1,2,…,11,12) |
%d | 日(01,02,…,) |
%H | 小时(24小时制) |
%h | 小时(12小时制) |
%i | 分钟(00,01,…,59) |
%s | 秒(00,01,…,59) |
1.STR_TO_DATE:
按照指定的日期格式将字符串日期转为对应的日期格式
SELECT STR_TO_DATE('2020-5-15','%Y-%c-%d') AS output;
STR_TO_DATE函数中,字符串日期的格式必须与第二个参数给出的日期格式相匹配。
2.DATE_FORMAT:
将date类型的日期转为任意格式的字符串类型,前后格式不必相互匹配。
SELECT
*,DATE_FORMAT(entry_time,"%y年%m月%d日")
AS
入职日期
FROM
employee;
#若expr1为ture,则返回expr2的值,否则返回expr3的值
IF(expr1,expr2,expr3)
SELECT *,IF(bonus_rate IS NULL,"无","有") AS 奖金 FROM employee;
CASE case_value
WHEN when_value THEN
statement_list
ELSE
statement_list
END CASE;
类似java和c中的switch-case结构
switch(表达式)
{
case 常量表达式1:语句1
case 常量表达式2:语句2
……
case 常量表达式n:语句n
default:语句n+1
}
在MySQL中,case_value等同于c中switch_case结构的表达式,when_value等同于常量表达式,statement_list等同于语句,else等同于default。
SELECT
employee_id,employee_name,branch_company,salary AS 原始工资,department,
CASE department
WHEN "R&D" THEN
salary*1.2
WHEN "Personnel" THEN
salary*1.1
ELSE
salary
END AS 调整工资
FROM
employee;