#1、ADDDATE(d,n):计算起始日期 d 加上 n 天的日期
SELECT ADDDATE(NOW(),9);-- 2025-11-30
#2、ADDTIME(t,n):n 是一个时间表达式,时间 t 加上时间表达式 n
SELECT ADDTIME('11:15:55',5);-- '11:16:00'
SELECT ADDTIME('11:15:15','00:01:00');-- '11:16:15'
#3、CURDATE():返回当前日期

#4、CURRENT_DATE():返回当前日期
SELECT CURRENT_DATE();
#5、CURTIME():返回当前时间
SELECT CURTIME();
#6、CURRENT_TIME():返回当前时间
SELECT CURRENT_TIME();
#7、CURRENT_TIMESTAMP():返回当前日期和时间
SELECT CURRENT_TIMESTAMP();
#8、LOCALTIME():返回当前日期和时间
SELECT LOCALTIME();
#9、LOCALTIMESTAMP():返回当前日期和时间
SELECT LOCALTIMESTAMP();
#10、NOW():返回当前日期和时间
SELECT NOW();
#11、SYSDATE():返回当前日期和时间
SELECT SYSDATE();
#12、DATE():从日期或日期时间表达式中提取日期值
SELECT DATE(NOW());
#select date(日期字段) from 表名;
#13、DATEDIFF(d1,d2):计算日期 d1->d2 之间相隔的天数,注意两个日期的顺序
SELECT DATEDIFF(NOW(),字段) FROM 表名;
#14、DATE_ADD(d,INTERVAL expr type):计算起始日期 d 加上一个时间段后的日期,
#type 值可以是:
MICROSECOND 微妙 10^(-6)
SECOND 秒
MINUTE 分钟
HOUR 小时
DAY 天
WEEK 周
MONTH 月
QUARTER 季度
YEAR 年
SECOND_MICROSECOND
MINUTE_MICROSECOND
MINUTE_SECOND
HOUR_MICROSECOND
HOUR_SECOND
HOUR_MINUTE
DAY_MICROSECOND
DAY_SECOND
DAY_MINUTE
DAY_HOUR
YEAR_MONTH
#15、DATE_FORMAT(d,f):按表达式 f的要求显示日期 d
#16、DATE_SUB(date,INTERVAL expr type):函数从日期减去指定的时间间隔

SELECT DATE_SUB(NOW(),INTERVAL 1 MONTH);-- 当前年-当前月份-1-当前日期
SELECT DATE_SUB(NOW(),INTERVAL 1 YEAR);-- 当前年-1-当前月份-当前日期
SELECT DATE_SUB(NOW(),INTERVAL 1 DAY);-- 当前年-当前月份-当前日期-1
#17、DAY(d):返回日期值 d 的日期部分
SELECT DAY('2025-11-21');-- 21
SELECT DAY(NOW());-- 当前日期
#18、DAYNAME(d):返回日期 d 是星期几,如 Monday,Tuesday
SELECT DAYNAME('2025-11-21');-- Friday
#19、DAYOFWEEK(d):日期 d 今天是星期几,1 星期日,2 星期一,以此类推
SELECT DAYOFWEEK('2025-11-21');-- 6
#20、WEEKDAY(d):日期 d 是星期几,0 表示星期一,1 表示星期二
SELECT WEEKDAY('2025-11-21');-- 4
#21、DAYOFMONTH(d):计算日期 d 是本月的第几天
SELECT DAYOFMONTH('2025-11-21');-- 21
SELECT DAYOFMONTH(NOW());-- 当前日期
#22、DAYOFYEAR(d):计算日期 d 是本年的第几天
SELECT DAYOFYEAR('2025-11-21');-- 325
#23、EXTRACT(type FROM d):从日期 d 中获取指定的值,type 指定返回的值。
type可取值为:
MICROSECOND 微妙 10^(-6)
SECOND 秒
MINUTE 分钟
HOUR 小时
DAY 天
WEEK 周
MONTH 月
QUARTER 季度
YEAR 年
SECOND_MICROSECOND
MINUTE_MICROSECOND
MINUTE_SECOND
HOUR_MICROSECOND
HOUR_SECOND
HOUR_MINUTE
DAY_MICROSECOND
DAY_SECOND
DAY_MINUTE
DAY_HOUR
YEAR_MONTH
#24、FROM_DAYS(n):计算从 0000 年 1 月 1 日开始 n 天后的日期

#25、HOUR(t):返回 t 中的小时值
SELECT HOUR('11:25:25');-- 11
SELECT HOUR(NOW());-- 当前时间小时值
#26、MINUTE(t):返回 t 中的分钟值
SELECT MINUTE('11:25:26');-- 25
SELECT MINUTE(NOW());-- 当前时间分钟值
#27、SECOND(t):返回 t 中的秒钟值
SELECT SECOND('11:25:26');-- 26
SELECT SECOND(NOW());-- 当前时间秒数值
#28、LAST_DAY(d):返回给给定日期的那一月份的最后一天
SELECT LAST_DAY('2025-11-21');-- 30
SELECT LAST_DAY(NOW());-- 当前日期本月的最后一天
#29、MAKEDATE(year, day-of-year):基于给定参数年份 year 和所在年中的天数序号
# day-of-year 返回一个日期
SELECT MAKEDATE(2025,5);-- 2025年的第5天即2025-1-5
#30、MAKETIME(hour, minute, second):组合时间,参数分别为小时、分钟、秒
SELECT MAKETIME(11,25,25);-- 11:25:25
#31、MICROSECOND(date):返回日期参数所对应的微秒数
SELECT MICROSECOND('11:25:00.000002');-- 2 1s=1000000微秒
#32、MONTHNAME(d):返回日期当中的月份名称,如 November
SELECT MONTHNAME('2025-1-1');-- January
#33、MONTH(d):返回日期d中的月份值,1 到 12
SELECT MONTH('2025-1-1');-- 1
#34、PERIOD_ADD(period, number):为 年-月 组合日期添加一个时段
SELECT PERIOD_ADD('202511',2);-- 202601
#35、PERIOD_DIFF(period1, period2):返回两个时段之间的月份差值
SELECT PERIOD_DIFF('202601','202511');-- 2
#36、QUARTER(d):返回日期d是第几季节,返回 1 到 4;1-3月返回1,
#4-6月返回2,7-9月返回3,10-12月返回4
#37、SEC_TO_TIME(s):将以秒为单位的时间 s 转换为时分秒的格式
SELECT SEC_TO_TIME('3600');-- 01:00:00.00000
#38、TIME_TO_SEC(t):将时间 t 转换为秒
SELECT TIME_TO_SEC('01:00:00.00000');-- 3600秒
#39、STR_TO_DATE(string, format_mask):将字符串转变为日期
#40、SUBDATE(d,n):日期 d 减去 n 天后的日期
SELECT SUBDATE('2025-11-21',3);-- 2025-11-18
SELECT SUBDATE(NOW(),3);-- 当天日期的3天前
#41、SUBTIME(t,n):时间 t 减去 n 秒的时间
SELECT SUBTIME('11:25:59',51);-- 11:25:08
SELECT SUBTIME(NOW(),51);-- 当前时间的51秒前
#42、TIME(expression):提取传入表达式的时间部分
SELECT TIME('2025-11-21 11:25:25');-- 11:25:25
SELECT TIME(NOW());-- 提取当天时间,如:11:25:25
#43、TIME_FORMAT(t,f):按表达式 f 的要求显示时间 t
#44、TIMEDIFF(time1, time2):计算时间差值 time1-time2
SELECT TIMEDIFF('2025-11-21 11:25:25','2025-11-20 11:25:24');-- 24:00:01
#45、TIMESTAMP(expression, interval):
#单个参数时,函数返回日期或日期时间表达式;有2个参数时,将参数加和
#单个参数:
SELECT TIMESTAMP('2025-11-21 11:25:25');-- 2025-11-21 11:25:25
SELECT TIMESTAMP(NOW());-- 当天年份-当天月份-当天日期 当天时间 如:2025-11-21 11:25:25
#两个参数:
SELECT TIMESTAMP('2025-11-21 11:25:25',1);-- 此时的1等价于00:00:01
SELECT TIMESTAMP('2025-11-21 11:25:25',1112);-- 2025-11-21 11:36:37 1112等价于00:11:12
#46、TIMESTAMPDIFF(unit,datetime_expr1,datetime_expr2):
#计算时间差,返回 datetime_expr2 − datetime_expr1 的时间差
SELECT TIMESTAMPDIFF(MONTH,'2025-10-21 11:25:25',NOW());-- unit:可填year month day hour...
#47、TO_DAYS(d):计算日期 d 距离 0000 年 1 月 1 日的天数
SELECT TO_DAYS(NOW());-- 当前日期距离 0000 年 1 月 1 日的天数
#48、WEEK(d):计算日期 d 是本年的第几个星期,范围是 0 到 53

SELECT WEEK('2025-11-21');-- 46 是本年的第47个星期,因为是从0开始的星期数
#49、WEEKOFYEAR(d):计算日期 d 是本年的第几个星期,范围是 0 到 53

按道理应该和48结果一样,但不知道什么原因导致结果不同
#50、YEAR(d):返回年份
SELECT YEAR('2025-11-21');-- 2025
SELECT YEAR(NOW());-- 当前年份
1674

被折叠的 条评论
为什么被折叠?



