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;