下文中使用到的数据库,可参考 创建练习数据库
返回当前日期
函数:CURDATE()
指令
1
SELECT CURDATE();
运行结果
返回当前时间
函数:CURTIME()
指令
1
SELECT CURTIME();
运行结果
返回当前日期和时间
函数:NOW()
指令
1
SELECT NOW()
运行结果
提取日期值
函数:DATE()
指令
1
SELECT DATE('2021-10-31 11:36:20')
运行结果
提取年份值
函数:YEAR()
指令
1
SELECT YEAR('2021-10-31 11:36:20')
运行结果
提取月份值
函数:MONTH()
指令
1
SELECT MONTH('2021-10-31 11:36:20')
运行结果
提取天数值
函数:DAY()
指令
1
SELECT DAY('2021-10-31 11:36:20')
运行结果
提取小时值
函数:HOUR()
指令
1
SELECT HOUR('2021-10-31 11:36:20')
运行结果
提取分钟值
函数:MINUTE()
指令
1
SELECT MINUTE('2021-10-31 11:36:20')
运行结果
提取秒数值
函数:SECOND()
指令
1
SELECT SECOND('2021-10-31 11:36:20')
运行结果
将秒数转为时间
函数:SEC_TO_TIME
指令
1
SELECT SEC_TO_TIME(3661)
运行结果
将时间转为秒数
函数:TIME_TO_SEC()
指令
1
SELECT TIME_TO_SEC('1:01:01')
运行结果
计算 n 天后的日期
函数:ADDDATE(d,n)
说明:d 表示日期,n 表示天数。
指令
1
SELECT ADDDATE('2021-10-31',10)
运行结果
计算 n 天前的日期
函数:SUBDATE(d,n)
说明:d 表示日期,n 表示天数。
指令
1
SELECT SUBDATE('2021-10-31 12:23:20',10)
运行结果
计算 n 秒后的时间
函数:ADDTIME(t,n)
说明:t 表示时间,n 表示时间间隔,当 n 为整数时要小于 60,也可以用字符串表示。
指令
1
SELECT ADDTIME('2021-10-31 11:43:25',5),ADDTIME('2021-10-31 11:43:25','2:10:15')
运行结果
计算 n 秒前的时间
函数:SUBTIME()
说明:t 表示时间,n 表示时间间隔,当 n 为整数时要小于 60,也可以用字符串表示。
指令
1
SELECT SUBTIME('2021-10-31 12:23:20',10),SUBTIME('2021-10-31 12:23:20','2:3:20')
运行结果
计算日期间隔
函数:DATEDIFF(d1,d2)
说明:d1 表示结束日期,d2 表示开始日期。
指令
1
SELECT DATEDIFF('2022-01-01','2021-10-31'),DATEDIFF('2021-10-31','2022-01-01')
运行结果
计算时间间隔
函数:TIMEDIFF(t1,t2)
说明:t1 是开始时间 t2 结束时间
指令
1
SELECT TIMEDIFF('12:31:20','11:30:10')
运行结果
练习:计算 xs 表中所用人的年龄
指令
1
select 学号,姓名,出生日期,DATEDIFF(NOW(),出生日期) DIV 365 as 年龄 from xs;
运行结果