-- 日期函数
-- NOW() 返回当前系统日期+时间
SELECT NOW() AS 当前时间和时间;
-- curdate() 返回当前的日期
SELECT CURDATE() AS 当前的日期;
-- curtime() 返回当前的时间
SELECT CURTIME() AS 当前的时间;
-- 计算两个时间相差多少天
-- SELECT DATEDIFF(NOW(),'1998-10-07'); now()也可以换成字符时间/表达式
SELECT DATEDIFF(NOW(),'1998-10-07');
-- 可以获取指定得部分:年(year)、月(mont)、日(day)、分(minute)、秒(second)
-- 注意:若想得到英文,例如“月” monthname(NOW());
SELECT YEAR(NOW())as 年;
SELECT MONTH(NOW())as 月;
-- 常用的
-- str_to_date(str,format) 将字符转换成日期
-- str表示输入字符
-- format表示日期的格式(字符)
SELECT STR_TO_DATE('199810-07','%Y%m-%d') as 日期;
-- 范例:查询入职如日期为1992年4月3号的员工信息
SELECT
*
FROM
employees
WHERE
hiredate = STR_TO_DATE('19920403','%Y%m%d');
-- date_format(date,format) 将日期转换成字符串
-- date表示输入字符
-- format表示日期的格式(字符)
SELECT DATE_FORMAT(NOW(),'%Y年%m月%d日%H时%i分') AS 日期转string1;
SELECT DATE_FORMAT('2020-05-06 15:30','%Y年%m月%d日%H时%i分') AS 日期转string2;
-- 范例;查询有奖金的员工名和入职日期(xx月/xx日/xx年)
SELECT
last_name,
DATE_FORMAT(hiredate,'%m月/%d日/%Y年') AS 日职日期
FROM
employees
WHERE
commission_pct is not null ;
-- hour() 返回小时
-- minute() 返回分钟
-- second() 返回秒
-- datediff(x,y) 返回两个日期相差的天数
-- monthname() 以英文函数返回月